diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 5aefc1da76..cbad42b83a 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -36,7 +36,7 @@ repos:
additional_dependencies: [tomli]
- repo: https://github.com/psf/black
- rev: 23.10.1
+ rev: 23.11.0
hooks:
- id: black
pass_filenames: false
diff --git a/COPYING b/COPYING
deleted file mode 100644
index 94a9ed024d..0000000000
--- a/COPYING
+++ /dev/null
@@ -1,674 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc.
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The GNU General Public License is a free, copyleft license for
-software and other kinds of works.
-
- The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works. By contrast,
-the GNU General Public License is intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users. We, the Free Software Foundation, use the
-GNU General Public License for most of our software; it applies also to
-any other work released this way by its authors. You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-them if you wish), that you receive source code or can get it if you
-want it, that you can change the software or use pieces of it in new
-free programs, and that you know you can do these things.
-
- To protect your rights, we need to prevent others from denying you
-these rights or asking you to surrender the rights. Therefore, you have
-certain responsibilities if you distribute copies of the software, or if
-you modify it: responsibilities to respect the freedom of others.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must pass on to the recipients the same
-freedoms that you received. You must make sure that they, too, receive
-or can get the source code. And you must show them these terms so they
-know their rights.
-
- Developers that use the GNU GPL protect your rights with two steps:
-(1) assert copyright on the software, and (2) offer you this License
-giving you legal permission to copy, distribute and/or modify it.
-
- For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software. For both users' and
-authors' sake, the GPL requires that modified versions be marked as
-changed, so that their problems will not be attributed erroneously to
-authors of previous versions.
-
- Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the manufacturer
-can do so. This is fundamentally incompatible with the aim of
-protecting users' freedom to change the software. The systematic
-pattern of such abuse occurs in the area of products for individuals to
-use, which is precisely where it is most unacceptable. Therefore, we
-have designed this version of the GPL to prohibit the practice for those
-products. If such problems arise substantially in other domains, we
-stand ready to extend this provision to those domains in future versions
-of the GPL, as needed to protect the freedom of users.
-
- Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish to
-avoid the special danger that patents applied to a free program could
-make it effectively proprietary. To prevent this, the GPL assures that
-patents cannot be used to render the program non-free.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- TERMS AND CONDITIONS
-
- 0. Definitions.
-
- "This License" refers to version 3 of the GNU General Public License.
-
- "Copyright" also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.
-
- "The Program" refers to any copyrightable work licensed under this
-License. Each licensee is addressed as "you". "Licensees" and
-"recipients" may be individuals or organizations.
-
- To "modify" a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy. The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
-
- A "covered work" means either the unmodified Program or a work based
-on the Program.
-
- To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy. Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
- To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies. Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.
-
- An interactive user interface displays "Appropriate Legal Notices"
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License. If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
- 1. Source Code.
-
- The "source code" for a work means the preferred form of the work
-for making modifications to it. "Object code" means any non-source
-form of a work.
-
- A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
- The "System Libraries" of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form. A
-"Major Component", in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
- The "Corresponding Source" for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities. However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work. For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
- The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
- The Corresponding Source for a work in source code form is that
-same work.
-
- 2. Basic Permissions.
-
- All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met. This License explicitly affirms your unlimited
-permission to run the unmodified Program. The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work. This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
- You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force. You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright. Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.
-
- Conveying under any other circumstances is permitted solely under
-the conditions stated below. Sublicensing is not allowed; section 10
-makes it unnecessary.
-
- 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-
- No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
- When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.
-
- 4. Conveying Verbatim Copies.
-
- You may convey verbatim copies of the Program's source code as you
-receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
- You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
- 5. Conveying Modified Source Versions.
-
- You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:
-
- a) The work must carry prominent notices stating that you modified
- it, and giving a relevant date.
-
- b) The work must carry prominent notices stating that it is
- released under this License and any conditions added under section
- 7. This requirement modifies the requirement in section 4 to
- "keep intact all notices".
-
- c) You must license the entire work, as a whole, under this
- License to anyone who comes into possession of a copy. This
- License will therefore apply, along with any applicable section 7
- additional terms, to the whole of the work, and all its parts,
- regardless of how they are packaged. This License gives no
- permission to license the work in any other way, but it does not
- invalidate such permission if you have separately received it.
-
- d) If the work has interactive user interfaces, each must display
- Appropriate Legal Notices; however, if the Program has interactive
- interfaces that do not display Appropriate Legal Notices, your
- work need not make them do so.
-
- A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-"aggregate" if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit. Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
- 6. Conveying Non-Source Forms.
-
- You may convey a covered work in object code form under the terms
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:
-
- a) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by the
- Corresponding Source fixed on a durable physical medium
- customarily used for software interchange.
-
- b) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by a
- written offer, valid for at least three years and valid for as
- long as you offer spare parts or customer support for that product
- model, to give anyone who possesses the object code either (1) a
- copy of the Corresponding Source for all the software in the
- product that is covered by this License, on a durable physical
- medium customarily used for software interchange, for a price no
- more than your reasonable cost of physically performing this
- conveying of source, or (2) access to copy the
- Corresponding Source from a network server at no charge.
-
- c) Convey individual copies of the object code with a copy of the
- written offer to provide the Corresponding Source. This
- alternative is allowed only occasionally and noncommercially, and
- only if you received the object code with such an offer, in accord
- with subsection 6b.
-
- d) Convey the object code by offering access from a designated
- place (gratis or for a charge), and offer equivalent access to the
- Corresponding Source in the same way through the same place at no
- further charge. You need not require recipients to copy the
- Corresponding Source along with the object code. If the place to
- copy the object code is a network server, the Corresponding Source
- may be on a different server (operated by you or a third party)
- that supports equivalent copying facilities, provided you maintain
- clear directions next to the object code saying where to find the
- Corresponding Source. Regardless of what server hosts the
- Corresponding Source, you remain obligated to ensure that it is
- available for as long as needed to satisfy these requirements.
-
- e) Convey the object code using peer-to-peer transmission, provided
- you inform other peers where the object code and Corresponding
- Source of the work are being offered to the general public at no
- charge under subsection 6d.
-
- A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
- A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal, family,
-or household purposes, or (2) anything designed or sold for incorporation
-into a dwelling. In determining whether a product is a consumer product,
-doubtful cases shall be resolved in favor of coverage. For a particular
-product received by a particular user, "normally used" refers to a
-typical or common use of that class of product, regardless of the status
-of the particular user or of the way in which the particular user
-actually uses, or expects or is expected to use, the product. A product
-is a consumer product regardless of whether the product has substantial
-commercial, industrial or non-consumer uses, unless such uses represent
-the only significant mode of use of the product.
-
- "Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to install
-and execute modified versions of a covered work in that User Product from
-a modified version of its Corresponding Source. The information must
-suffice to ensure that the continued functioning of the modified object
-code is in no case prevented or interfered with solely because
-modification has been made.
-
- If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information. But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
- The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or updates
-for a work that has been modified or installed by the recipient, or for
-the User Product in which it has been modified or installed. Access to a
-network may be denied when the modification itself materially and
-adversely affects the operation of the network or violates the rules and
-protocols for communication across the network.
-
- Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
- 7. Additional Terms.
-
- "Additional permissions" are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law. If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
- When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it. (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.) You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
- Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders of
-that material) supplement the terms of this License with terms:
-
- a) Disclaiming warranty or limiting liability differently from the
- terms of sections 15 and 16 of this License; or
-
- b) Requiring preservation of specified reasonable legal notices or
- author attributions in that material or in the Appropriate Legal
- Notices displayed by works containing it; or
-
- c) Prohibiting misrepresentation of the origin of that material, or
- requiring that modified versions of such material be marked in
- reasonable ways as different from the original version; or
-
- d) Limiting the use for publicity purposes of names of licensors or
- authors of the material; or
-
- e) Declining to grant rights under trademark law for use of some
- trade names, trademarks, or service marks; or
-
- f) Requiring indemnification of licensors and authors of that
- material by anyone who conveys the material (or modified versions of
- it) with contractual assumptions of liability to the recipient, for
- any liability that these contractual assumptions directly impose on
- those licensors and authors.
-
- All other non-permissive additional terms are considered "further
-restrictions" within the meaning of section 10. If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term. If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
- If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
- Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.
-
- 8. Termination.
-
- You may not propagate or modify a covered work except as expressly
-provided under this License. Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
- However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.
-
- Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
- Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License. If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
- 9. Acceptance Not Required for Having Copies.
-
- You are not required to accept this License in order to receive or
-run a copy of the Program. Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance. However,
-nothing other than this License grants you permission to propagate or
-modify any covered work. These actions infringe copyright if you do
-not accept this License. Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
- 10. Automatic Licensing of Downstream Recipients.
-
- Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License. You are not responsible
-for enforcing compliance by third parties with this License.
-
- An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations. If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
- You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License. For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
- 11. Patents.
-
- A "contributor" is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based. The
-work thus licensed is called the contributor's "contributor version".
-
- A contributor's "essential patent claims" are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version. For
-purposes of this definition, "control" includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-
- Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
- In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement). To "grant" such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
- If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients. "Knowingly relying" means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
- If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
- A patent license is "discriminatory" if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License. You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.
-
- Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
- 12. No Surrender of Others' Freedom.
-
- If conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot convey a
-covered work so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you may
-not convey it at all. For example, if you agree to terms that obligate you
-to collect a royalty for further conveying from those to whom you convey
-the Program, the only way you could satisfy both those terms and this
-License would be to refrain entirely from conveying the Program.
-
- 13. Use with the GNU Affero General Public License.
-
- Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU Affero General Public License into a single
-combined work, and to convey the resulting work. The terms of this
-License will continue to apply to the part which is the covered work,
-but the special requirements of the GNU Affero General Public License,
-section 13, concerning interaction through a network will apply to the
-combination as such.
-
- 14. Revised Versions of this License.
-
- The Free Software Foundation may publish revised and/or new versions of
-the GNU General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
-Program specifies that a certain numbered version of the GNU General
-Public License "or any later version" applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation. If the Program does not specify a version number of the
-GNU General Public License, you may choose any version ever published
-by the Free Software Foundation.
-
- If the Program specifies that a proxy can decide which future
-versions of the GNU General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.
-
- Later license versions may give you additional or different
-permissions. However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
- 15. Disclaimer of Warranty.
-
- THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
-OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
-IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
-ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. Limitation of Liability.
-
- IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
-THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
-GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
-USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
-DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
-PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
-EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGES.
-
- 17. Interpretation of Sections 15 and 16.
-
- If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-state the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-
- Copyright (C)
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see .
-
-Also add information on how to contact you by electronic and paper mail.
-
- If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
-
- Copyright (C)
- This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, your program's commands
-might be different; for a GUI interface, you would use an "about box".
-
- You should also get your employer (if you work as a programmer) or school,
-if any, to sign a "copyright disclaimer" for the program, if necessary.
-For more information on this, and how to apply and follow the GNU GPL, see
-.
-
- The GNU General Public License does not permit incorporating your program
-into proprietary programs. If your program is a subroutine library, you
-may consider it more useful to permit linking proprietary applications with
-the library. If this is what you want to do, use the GNU Lesser General
-Public License instead of this License. But first, please read
-.
diff --git a/COPYING.LESSER b/COPYING.LESSER
deleted file mode 100644
index 65c5ca88a6..0000000000
--- a/COPYING.LESSER
+++ /dev/null
@@ -1,165 +0,0 @@
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc.
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-
- This version of the GNU Lesser General Public License incorporates
-the terms and conditions of version 3 of the GNU General Public
-License, supplemented by the additional permissions listed below.
-
- 0. Additional Definitions.
-
- As used herein, "this License" refers to version 3 of the GNU Lesser
-General Public License, and the "GNU GPL" refers to version 3 of the GNU
-General Public License.
-
- "The Library" refers to a covered work governed by this License,
-other than an Application or a Combined Work as defined below.
-
- An "Application" is any work that makes use of an interface provided
-by the Library, but which is not otherwise based on the Library.
-Defining a subclass of a class defined by the Library is deemed a mode
-of using an interface provided by the Library.
-
- A "Combined Work" is a work produced by combining or linking an
-Application with the Library. The particular version of the Library
-with which the Combined Work was made is also called the "Linked
-Version".
-
- The "Minimal Corresponding Source" for a Combined Work means the
-Corresponding Source for the Combined Work, excluding any source code
-for portions of the Combined Work that, considered in isolation, are
-based on the Application, and not on the Linked Version.
-
- The "Corresponding Application Code" for a Combined Work means the
-object code and/or source code for the Application, including any data
-and utility programs needed for reproducing the Combined Work from the
-Application, but excluding the System Libraries of the Combined Work.
-
- 1. Exception to Section 3 of the GNU GPL.
-
- You may convey a covered work under sections 3 and 4 of this License
-without being bound by section 3 of the GNU GPL.
-
- 2. Conveying Modified Versions.
-
- If you modify a copy of the Library, and, in your modifications, a
-facility refers to a function or data to be supplied by an Application
-that uses the facility (other than as an argument passed when the
-facility is invoked), then you may convey a copy of the modified
-version:
-
- a) under this License, provided that you make a good faith effort to
- ensure that, in the event an Application does not supply the
- function or data, the facility still operates, and performs
- whatever part of its purpose remains meaningful, or
-
- b) under the GNU GPL, with none of the additional permissions of
- this License applicable to that copy.
-
- 3. Object Code Incorporating Material from Library Header Files.
-
- The object code form of an Application may incorporate material from
-a header file that is part of the Library. You may convey such object
-code under terms of your choice, provided that, if the incorporated
-material is not limited to numerical parameters, data structure
-layouts and accessors, or small macros, inline functions and templates
-(ten or fewer lines in length), you do both of the following:
-
- a) Give prominent notice with each copy of the object code that the
- Library is used in it and that the Library and its use are
- covered by this License.
-
- b) Accompany the object code with a copy of the GNU GPL and this license
- document.
-
- 4. Combined Works.
-
- You may convey a Combined Work under terms of your choice that,
-taken together, effectively do not restrict modification of the
-portions of the Library contained in the Combined Work and reverse
-engineering for debugging such modifications, if you also do each of
-the following:
-
- a) Give prominent notice with each copy of the Combined Work that
- the Library is used in it and that the Library and its use are
- covered by this License.
-
- b) Accompany the Combined Work with a copy of the GNU GPL and this license
- document.
-
- c) For a Combined Work that displays copyright notices during
- execution, include the copyright notice for the Library among
- these notices, as well as a reference directing the user to the
- copies of the GNU GPL and this license document.
-
- d) Do one of the following:
-
- 0) Convey the Minimal Corresponding Source under the terms of this
- License, and the Corresponding Application Code in a form
- suitable for, and under terms that permit, the user to
- recombine or relink the Application with a modified version of
- the Linked Version to produce a modified Combined Work, in the
- manner specified by section 6 of the GNU GPL for conveying
- Corresponding Source.
-
- 1) Use a suitable shared library mechanism for linking with the
- Library. A suitable mechanism is one that (a) uses at run time
- a copy of the Library already present on the user's computer
- system, and (b) will operate properly with a modified version
- of the Library that is interface-compatible with the Linked
- Version.
-
- e) Provide Installation Information, but only if you would otherwise
- be required to provide such information under section 6 of the
- GNU GPL, and only to the extent that such information is
- necessary to install and execute a modified version of the
- Combined Work produced by recombining or relinking the
- Application with a modified version of the Linked Version. (If
- you use option 4d0, the Installation Information must accompany
- the Minimal Corresponding Source and Corresponding Application
- Code. If you use option 4d1, you must provide the Installation
- Information in the manner specified by section 6 of the GNU GPL
- for conveying Corresponding Source.)
-
- 5. Combined Libraries.
-
- You may place library facilities that are a work based on the
-Library side by side in a single library together with other library
-facilities that are not Applications and are not covered by this
-License, and convey such a combined library under terms of your
-choice, if you do both of the following:
-
- a) Accompany the combined library with a copy of the same work based
- on the Library, uncombined with any other library facilities,
- conveyed under the terms of this License.
-
- b) Give prominent notice with the combined library that part of it
- is a work based on the Library, and explaining where to find the
- accompanying uncombined form of the same work.
-
- 6. Revised Versions of the GNU Lesser General Public License.
-
- The Free Software Foundation may publish revised and/or new versions
-of the GNU Lesser General Public License from time to time. Such new
-versions will be similar in spirit to the present version, but may
-differ in detail to address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
-Library as you received it specifies that a certain numbered version
-of the GNU Lesser General Public License "or any later version"
-applies to it, you have the option of following the terms and
-conditions either of that published version or of any later version
-published by the Free Software Foundation. If the Library as you
-received it does not specify a version number of the GNU Lesser
-General Public License, you may choose any version of the GNU Lesser
-General Public License ever published by the Free Software Foundation.
-
- If the Library as you received it specifies that a proxy can decide
-whether future versions of the GNU Lesser General Public License shall
-apply, that proxy's public statement of acceptance of any version is
-permanent authorization for you to choose that version for the
-Library.
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000000..2d1d23e16c
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,29 @@
+BSD 3-Clause License
+
+Copyright (c) 2010, Met Office.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/MANIFEST.in b/MANIFEST.in
index 329cf79c5d..354b92d735 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -17,8 +17,7 @@ exclude .readthedocs.yml
exclude CHANGES
exclude CODE_OF_CONDUCT.md
exclude codecov.yml
-include COPYING
-include COPYING.LESSER
+include LICENSE
exclude Makefile
exclude noxfile.py
diff --git a/README.md b/README.md
index 53d24b0162..f857608718 100644
--- a/README.md
+++ b/README.md
@@ -15,7 +15,7 @@
| 💬 Community | [![Contributor Covenant](https://img.shields.io/badge/contributor%20covenant-2.1-4baaaa.svg)](https://www.contributor-covenant.org/version/2/1/code_of_conduct/) [![GH Discussions](https://img.shields.io/badge/github-discussions%20%F0%9F%92%AC-yellow?logo=github&logoColor=lightgrey)](https://github.com/SciTools/iris/discussions) [![twitter](https://img.shields.io/twitter/follow/scitools_iris?color=yellow&label=twitter%7Cscitools_iris&logo=twitter&style=plastic)](https://twitter.com/scitools_iris) |
| 📖 Documentation | [![rtd](https://readthedocs.org/projects/scitools-iris/badge/?version=latest)](https://scitools-iris.readthedocs.io/en/latest/?badge=latest) |
| 📈 Health | [![codecov](https://codecov.io/gh/SciTools/iris/branch/main/graph/badge.svg?token=0GeICSIF3g)](https://codecov.io/gh/SciTools/iris) |
-| ✨ Meta | [![code style - black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) [![NEP29](https://raster.shields.io/badge/follows-NEP29-orange.png)](https://numpy.org/neps/nep-0029-deprecation_policy.html) [![license - bds-3-clause](https://img.shields.io/github/license/SciTools/iris)](https://github.com/SciTools/iris/blob/main/COPYING.LESSER) [![conda platform](https://img.shields.io/conda/pn/conda-forge/iris.svg)](https://anaconda.org/conda-forge/iris) |
+| ✨ Meta | [![code style - black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) [![NEP29](https://raster.shields.io/badge/follows-NEP29-orange.png)](https://numpy.org/neps/nep-0029-deprecation_policy.html) [![license - bds-3-clause](https://img.shields.io/github/license/SciTools/iris)](https://github.com/SciTools/iris/blob/main/LICENSE) [![conda platform](https://img.shields.io/conda/pn/conda-forge/iris.svg)](https://anaconda.org/conda-forge/iris) |
| 📦 Package | [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.595182.svg)](https://doi.org/10.5281/zenodo.595182) [![conda-forge](https://img.shields.io/conda/vn/conda-forge/iris?color=orange&label=conda-forge&logo=conda-forge&logoColor=white)](https://anaconda.org/conda-forge/iris) [![pypi](https://img.shields.io/pypi/v/scitools-iris?color=orange&label=pypi&logo=python&logoColor=white)](https://pypi.org/project/scitools-iris/) [![pypi - python version](https://img.shields.io/pypi/pyversions/scitools-iris.svg?color=orange&logo=python&label=python&logoColor=white)](https://pypi.org/project/scitools-iris/) |
| 🧰 Repo | [![commits-since](https://img.shields.io/github/commits-since/SciTools/iris/latest.svg)](https://github.com/SciTools/iris/commits/main) [![contributors](https://img.shields.io/github/contributors/SciTools/iris)](https://github.com/SciTools/iris/graphs/contributors) [![release](https://img.shields.io/github/v/release/scitools/iris)](https://github.com/SciTools/iris/releases) |
| |
diff --git a/benchmarks/asv_delegated_conda.py b/benchmarks/asv_delegated_conda.py
index 22a3110075..a60cb7f2b7 100644
--- a/benchmarks/asv_delegated_conda.py
+++ b/benchmarks/asv_delegated_conda.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
ASV plug-in providing an alternative :class:`asv.plugins.conda.Conda`
subclass that manages the Conda environment via custom user scripts.
diff --git a/benchmarks/benchmarks/__init__.py b/benchmarks/benchmarks/__init__.py
index c86682ca4a..61983a969f 100644
--- a/benchmarks/benchmarks/__init__.py
+++ b/benchmarks/benchmarks/__init__.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Common code for benchmarks."""
from os import environ
import resource
diff --git a/benchmarks/benchmarks/aux_factory.py b/benchmarks/benchmarks/aux_factory.py
index 4cc4f6c70a..7d1e266c78 100644
--- a/benchmarks/benchmarks/aux_factory.py
+++ b/benchmarks/benchmarks/aux_factory.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
AuxFactory benchmark tests.
diff --git a/benchmarks/benchmarks/coords.py b/benchmarks/benchmarks/coords.py
index 3107dcf077..b6f56b997f 100644
--- a/benchmarks/benchmarks/coords.py
+++ b/benchmarks/benchmarks/coords.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Coord benchmark tests.
diff --git a/benchmarks/benchmarks/cperf/__init__.py b/benchmarks/benchmarks/cperf/__init__.py
index 814d29338f..7adba01b60 100644
--- a/benchmarks/benchmarks/cperf/__init__.py
+++ b/benchmarks/benchmarks/cperf/__init__.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Benchmarks for the CPerf scheme of the UK Met Office's NG-VAT project.
diff --git a/benchmarks/benchmarks/cperf/equality.py b/benchmarks/benchmarks/cperf/equality.py
index 47eb255513..f27558a5ed 100644
--- a/benchmarks/benchmarks/cperf/equality.py
+++ b/benchmarks/benchmarks/cperf/equality.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Equality benchmarks for the CPerf scheme of the UK Met Office's NG-VAT project.
"""
diff --git a/benchmarks/benchmarks/cperf/load.py b/benchmarks/benchmarks/cperf/load.py
index 04bb7e1a61..efbd497e2e 100644
--- a/benchmarks/benchmarks/cperf/load.py
+++ b/benchmarks/benchmarks/cperf/load.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
File loading benchmarks for the CPerf scheme of the UK Met Office's NG-VAT project.
"""
diff --git a/benchmarks/benchmarks/cperf/save.py b/benchmarks/benchmarks/cperf/save.py
index 2eb60e2ab5..957b28e3fd 100644
--- a/benchmarks/benchmarks/cperf/save.py
+++ b/benchmarks/benchmarks/cperf/save.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
File saving benchmarks for the CPerf scheme of the UK Met Office's NG-VAT project.
"""
diff --git a/benchmarks/benchmarks/cube.py b/benchmarks/benchmarks/cube.py
index 5889ce872b..ceacb4e86c 100644
--- a/benchmarks/benchmarks/cube.py
+++ b/benchmarks/benchmarks/cube.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Cube benchmark tests.
diff --git a/benchmarks/benchmarks/experimental/__init__.py b/benchmarks/benchmarks/experimental/__init__.py
index f16e400bce..81fb222916 100644
--- a/benchmarks/benchmarks/experimental/__init__.py
+++ b/benchmarks/benchmarks/experimental/__init__.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Benchmark tests for the experimental module.
diff --git a/benchmarks/benchmarks/experimental/ugrid/__init__.py b/benchmarks/benchmarks/experimental/ugrid/__init__.py
index 2e40c525a6..1fa8b82d67 100644
--- a/benchmarks/benchmarks/experimental/ugrid/__init__.py
+++ b/benchmarks/benchmarks/experimental/ugrid/__init__.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Benchmark tests for the experimental.ugrid module.
diff --git a/benchmarks/benchmarks/experimental/ugrid/regions_combine.py b/benchmarks/benchmarks/experimental/ugrid/regions_combine.py
index 5ecc90930b..6d62cf9cd5 100644
--- a/benchmarks/benchmarks/experimental/ugrid/regions_combine.py
+++ b/benchmarks/benchmarks/experimental/ugrid/regions_combine.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Benchmarks stages of operation of the function
:func:`iris.experimental.ugrid.utils.recombine_submeshes`.
diff --git a/benchmarks/benchmarks/generate_data/__init__.py b/benchmarks/benchmarks/generate_data/__init__.py
index 52a5aceca8..8837e7cca9 100644
--- a/benchmarks/benchmarks/generate_data/__init__.py
+++ b/benchmarks/benchmarks/generate_data/__init__.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Scripts for generating supporting data for benchmarking.
diff --git a/benchmarks/benchmarks/generate_data/stock.py b/benchmarks/benchmarks/generate_data/stock.py
index 954e791f43..b6702ad883 100644
--- a/benchmarks/benchmarks/generate_data/stock.py
+++ b/benchmarks/benchmarks/generate_data/stock.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Wrappers for using :mod:`iris.tests.stock` methods for benchmarking.
diff --git a/benchmarks/benchmarks/generate_data/ugrid.py b/benchmarks/benchmarks/generate_data/ugrid.py
index 527b49a6bb..3be5c20a48 100644
--- a/benchmarks/benchmarks/generate_data/ugrid.py
+++ b/benchmarks/benchmarks/generate_data/ugrid.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Scripts for generating supporting data for UGRID-related benchmarking.
"""
diff --git a/benchmarks/benchmarks/generate_data/um_files.py b/benchmarks/benchmarks/generate_data/um_files.py
index 39773bbb4b..23d3770aa1 100644
--- a/benchmarks/benchmarks/generate_data/um_files.py
+++ b/benchmarks/benchmarks/generate_data/um_files.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Generate FF, PP and NetCDF files based on a minimal synthetic FF file.
diff --git a/benchmarks/benchmarks/import_iris.py b/benchmarks/benchmarks/import_iris.py
index fc32ac289b..5f902fd2e0 100644
--- a/benchmarks/benchmarks/import_iris.py
+++ b/benchmarks/benchmarks/import_iris.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
from importlib import import_module, reload
################
diff --git a/benchmarks/benchmarks/iterate.py b/benchmarks/benchmarks/iterate.py
index 0a5415ac2b..6cc935498c 100644
--- a/benchmarks/benchmarks/iterate.py
+++ b/benchmarks/benchmarks/iterate.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Iterate benchmark tests.
diff --git a/benchmarks/benchmarks/load/__init__.py b/benchmarks/benchmarks/load/__init__.py
index 3d15629f9e..a926e6b7e2 100644
--- a/benchmarks/benchmarks/load/__init__.py
+++ b/benchmarks/benchmarks/load/__init__.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
File loading benchmark tests.
diff --git a/benchmarks/benchmarks/load/ugrid.py b/benchmarks/benchmarks/load/ugrid.py
index 35c8754171..ef01ae03be 100644
--- a/benchmarks/benchmarks/load/ugrid.py
+++ b/benchmarks/benchmarks/load/ugrid.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Mesh data loading benchmark tests.
diff --git a/benchmarks/benchmarks/metadata_manager_factory.py b/benchmarks/benchmarks/metadata_manager_factory.py
index 7e7fc98008..531af58b66 100644
--- a/benchmarks/benchmarks/metadata_manager_factory.py
+++ b/benchmarks/benchmarks/metadata_manager_factory.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
metadata_manager_factory benchmark tests.
diff --git a/benchmarks/benchmarks/mixin.py b/benchmarks/benchmarks/mixin.py
index bec5518eee..335bee1a0f 100644
--- a/benchmarks/benchmarks/mixin.py
+++ b/benchmarks/benchmarks/mixin.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Mixin benchmark tests.
diff --git a/benchmarks/benchmarks/plot.py b/benchmarks/benchmarks/plot.py
index 75195c86e9..73a2a51990 100644
--- a/benchmarks/benchmarks/plot.py
+++ b/benchmarks/benchmarks/plot.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Plot benchmark tests.
diff --git a/benchmarks/benchmarks/regridding.py b/benchmarks/benchmarks/regridding.py
index 44bd1b6c95..9cd77527af 100644
--- a/benchmarks/benchmarks/regridding.py
+++ b/benchmarks/benchmarks/regridding.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Regridding benchmark test
diff --git a/benchmarks/benchmarks/save.py b/benchmarks/benchmarks/save.py
index e9a7918dcc..6feb446c70 100644
--- a/benchmarks/benchmarks/save.py
+++ b/benchmarks/benchmarks/save.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
File saving benchmarks.
diff --git a/benchmarks/benchmarks/sperf/__init__.py b/benchmarks/benchmarks/sperf/__init__.py
index eccad56f6f..111cd4b841 100644
--- a/benchmarks/benchmarks/sperf/__init__.py
+++ b/benchmarks/benchmarks/sperf/__init__.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Benchmarks for the SPerf scheme of the UK Met Office's NG-VAT project.
diff --git a/benchmarks/benchmarks/sperf/combine_regions.py b/benchmarks/benchmarks/sperf/combine_regions.py
index e27b3b1996..da0cffde50 100644
--- a/benchmarks/benchmarks/sperf/combine_regions.py
+++ b/benchmarks/benchmarks/sperf/combine_regions.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Region combine benchmarks for the SPerf scheme of the UK Met Office's NG-VAT project.
"""
diff --git a/benchmarks/benchmarks/sperf/equality.py b/benchmarks/benchmarks/sperf/equality.py
index 85c73ab92b..bb3b707a75 100644
--- a/benchmarks/benchmarks/sperf/equality.py
+++ b/benchmarks/benchmarks/sperf/equality.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Equality benchmarks for the SPerf scheme of the UK Met Office's NG-VAT project.
"""
diff --git a/benchmarks/benchmarks/sperf/load.py b/benchmarks/benchmarks/sperf/load.py
index 6a60355976..ab1273e288 100644
--- a/benchmarks/benchmarks/sperf/load.py
+++ b/benchmarks/benchmarks/sperf/load.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
File loading benchmarks for the SPerf scheme of the UK Met Office's NG-VAT project.
"""
diff --git a/benchmarks/benchmarks/sperf/save.py b/benchmarks/benchmarks/sperf/save.py
index dd33924c6c..9892f0d239 100644
--- a/benchmarks/benchmarks/sperf/save.py
+++ b/benchmarks/benchmarks/sperf/save.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
File saving benchmarks for the SPerf scheme of the UK Met Office's NG-VAT project.
"""
diff --git a/benchmarks/benchmarks/trajectory.py b/benchmarks/benchmarks/trajectory.py
index 5c1d10d218..e4c3297614 100644
--- a/benchmarks/benchmarks/trajectory.py
+++ b/benchmarks/benchmarks/trajectory.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Trajectory benchmark test
diff --git a/benchmarks/bm_runner.py b/benchmarks/bm_runner.py
index 4b8f6e1f18..1efe8d3acb 100644
--- a/benchmarks/bm_runner.py
+++ b/benchmarks/bm_runner.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Argparse conveniences for executing common types of benchmark runs.
"""
diff --git a/docs/gallery_tests/__init__.py b/docs/gallery_tests/__init__.py
index ac5753e58b..091e997248 100644
--- a/docs/gallery_tests/__init__.py
+++ b/docs/gallery_tests/__init__.py
@@ -1,5 +1,4 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
diff --git a/docs/gallery_tests/conftest.py b/docs/gallery_tests/conftest.py
index a218b305a2..d3ca8309f8 100644
--- a/docs/gallery_tests/conftest.py
+++ b/docs/gallery_tests/conftest.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Pytest fixtures for the gallery tests."""
diff --git a/docs/gallery_tests/test_gallery_examples.py b/docs/gallery_tests/test_gallery_examples.py
index 0d0793a7da..93f361a62a 100644
--- a/docs/gallery_tests/test_gallery_examples.py
+++ b/docs/gallery_tests/test_gallery_examples.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
import importlib
diff --git a/docs/src/conf.py b/docs/src/conf.py
index 5bfbfcfe41..c59aca4909 100644
--- a/docs/src/conf.py
+++ b/docs/src/conf.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
# -*- coding: utf-8 -*-
#
diff --git a/docs/src/copyright.rst b/docs/src/copyright.rst
index 2829374f47..d5996fd999 100644
--- a/docs/src/copyright.rst
+++ b/docs/src/copyright.rst
@@ -6,18 +6,15 @@ Iris Code
---------
All Iris source code, unless explicitly stated, is ``Copyright Iris
-contributors`` and is licensed under the **GNU Lesser General Public
-License** as published by the Free Software Foundation, either version 3 of
-the License, or (at your option) any later version.
+contributors`` and is licensed under the **BSD-3 License**.
You should find all source files with the following header:
.. admonition:: Code License
Copyright Iris contributors
- This file is part of Iris and is released under the LGPL license.
- See COPYING and COPYING.LESSER in the root of the repository for full
- licensing details.
+ This file is part of Iris and is released under the BSD license.
+ See LICENSE in the root of the repository for full licensing details.
Iris Documentation and Examples
diff --git a/docs/src/further_topics/filtering_warnings.rst b/docs/src/further_topics/filtering_warnings.rst
index 2cbad525d3..a69247008a 100644
--- a/docs/src/further_topics/filtering_warnings.rst
+++ b/docs/src/further_topics/filtering_warnings.rst
@@ -47,9 +47,9 @@ Warnings:
>>> my_operation()
...
- iris/coord_systems.py:456: IrisUserWarning: Setting inverse_flattening does not affect other properties of the GeogCS object. To change other properties set them explicitly or create a new GeogCS instance.
+ iris/coord_systems.py:455: IrisUserWarning: Setting inverse_flattening does not affect other properties of the GeogCS object. To change other properties set them explicitly or create a new GeogCS instance.
warnings.warn(wmsg, category=iris.exceptions.IrisUserWarning)
- iris/coord_systems.py:823: IrisDefaultingWarning: Discarding false_easting and false_northing that are not used by Cartopy.
+ iris/coord_systems.py:822: IrisDefaultingWarning: Discarding false_easting and false_northing that are not used by Cartopy.
warnings.warn(
Warnings can be suppressed using the Python warnings filter with the ``ignore``
@@ -110,7 +110,7 @@ You can target specific Warning messages, e.g.
... warnings.filterwarnings("ignore", message="Discarding false_easting")
... my_operation()
...
- iris/coord_systems.py:456: IrisUserWarning: Setting inverse_flattening does not affect other properties of the GeogCS object. To change other properties set them explicitly or create a new GeogCS instance.
+ iris/coord_systems.py:455: IrisUserWarning: Setting inverse_flattening does not affect other properties of the GeogCS object. To change other properties set them explicitly or create a new GeogCS instance.
warnings.warn(wmsg, category=iris.exceptions.IrisUserWarning)
::
@@ -125,16 +125,16 @@ Or you can target Warnings raised by specific lines of specific modules, e.g.
.. doctest:: filtering_warnings
>>> with warnings.catch_warnings():
- ... warnings.filterwarnings("ignore", module="iris.coord_systems", lineno=456)
+ ... warnings.filterwarnings("ignore", module="iris.coord_systems", lineno=455)
... my_operation()
...
- iris/coord_systems.py:823: IrisDefaultingWarning: Discarding false_easting and false_northing that are not used by Cartopy.
+ iris/coord_systems.py:822: IrisDefaultingWarning: Discarding false_easting and false_northing that are not used by Cartopy.
warnings.warn(
::
- python -W ignore:::iris.coord_systems:454
- export PYTHONWARNINGS=ignore:::iris.coord_systems:454
+ python -W ignore:::iris.coord_systems:453
+ export PYTHONWARNINGS=ignore:::iris.coord_systems:453
Warnings from a Common Source
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -188,7 +188,7 @@ module during execution:
... )
... my_operation()
...
- iris/coord_systems.py:456: IrisUserWarning: Setting inverse_flattening does not affect other properties of the GeogCS object. To change other properties set them explicitly or create a new GeogCS instance.
+ iris/coord_systems.py:455: IrisUserWarning: Setting inverse_flattening does not affect other properties of the GeogCS object. To change other properties set them explicitly or create a new GeogCS instance.
warnings.warn(wmsg, category=iris.exceptions.IrisUserWarning)
----
diff --git a/docs/src/sphinxext/api_rst_formatting.py b/docs/src/sphinxext/api_rst_formatting.py
index 8f1aa3c5f3..6dd82de91e 100644
--- a/docs/src/sphinxext/api_rst_formatting.py
+++ b/docs/src/sphinxext/api_rst_formatting.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
# This script will process all .rst files that have been created by
# sphinxcontrib.apidoc extension and perform minor changes, specifically:
diff --git a/docs/src/whatsnew/latest.rst b/docs/src/whatsnew/latest.rst
index c4be2ab7d2..6e7087c687 100644
--- a/docs/src/whatsnew/latest.rst
+++ b/docs/src/whatsnew/latest.rst
@@ -24,7 +24,7 @@ This document explains the changes made to Iris for this release
📢 Announcements
================
-#. N/A
+#. `@lbdreyer`_ relicensed Iris from LGPL-3 to BSD-3. (:pull: `5577`)
✨ Features
@@ -38,6 +38,13 @@ This document explains the changes made to Iris for this release
and :class:`~iris.coord_systems.RotatedMercator` coordinate systems,
complete with NetCDF loading and saving. (:pull:`5548`)
+#. `@trexfeathers`_ added the ``use_year_at_season_start`` parameter to
+ :func:`iris.coord_categorisation.add_season_year`. When
+ ``use_year_at_season_start==True``: seasons spanning the year boundary (e.g.
+ Winter - December to February) will be assigned to the preceding year (e.g.
+ the year of December) instead of the following year (the default behaviour).
+ (:pull:`5573`)
+
🐛 Bugs Fixed
=============
diff --git a/lib/iris/__init__.py b/lib/iris/__init__.py
index 2a3bd8a753..c29998cd6d 100644
--- a/lib/iris/__init__.py
+++ b/lib/iris/__init__.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
A package for handling multi-dimensional data and associated metadata.
diff --git a/lib/iris/_concatenate.py b/lib/iris/_concatenate.py
index 837afd73f3..554f14d914 100644
--- a/lib/iris/_concatenate.py
+++ b/lib/iris/_concatenate.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Automatic concatenation of multiple cubes over one or more existing dimensions.
diff --git a/lib/iris/_constraints.py b/lib/iris/_constraints.py
index 1884cbcbd9..82225ec516 100644
--- a/lib/iris/_constraints.py
+++ b/lib/iris/_constraints.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Provides objects for building up expressions useful for pattern matching.
diff --git a/lib/iris/_data_manager.py b/lib/iris/_data_manager.py
index 486a58de45..9ea4481307 100644
--- a/lib/iris/_data_manager.py
+++ b/lib/iris/_data_manager.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Management of common state and behaviour for cube and coordinate data.
diff --git a/lib/iris/_deprecation.py b/lib/iris/_deprecation.py
index 027e11f2dc..ad4dc5a560 100644
--- a/lib/iris/_deprecation.py
+++ b/lib/iris/_deprecation.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Utilities for producing runtime deprecation messages.
diff --git a/lib/iris/_lazy_data.py b/lib/iris/_lazy_data.py
index 4c294a7d2f..fb29f411d3 100644
--- a/lib/iris/_lazy_data.py
+++ b/lib/iris/_lazy_data.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Routines for lazy data handling.
diff --git a/lib/iris/_merge.py b/lib/iris/_merge.py
index 0f748d6d34..bf22f57887 100644
--- a/lib/iris/_merge.py
+++ b/lib/iris/_merge.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Automatic collation of cubes into higher-dimensional cubes.
diff --git a/lib/iris/_representation/__init__.py b/lib/iris/_representation/__init__.py
index f6c7fdf9b4..aec46ec927 100644
--- a/lib/iris/_representation/__init__.py
+++ b/lib/iris/_representation/__init__.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Code to make printouts and other representations (e.g. html) of Iris objects.
diff --git a/lib/iris/_representation/cube_printout.py b/lib/iris/_representation/cube_printout.py
index ea32fc5126..9239c96949 100644
--- a/lib/iris/_representation/cube_printout.py
+++ b/lib/iris/_representation/cube_printout.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Provides text printouts of Iris cubes.
diff --git a/lib/iris/_representation/cube_summary.py b/lib/iris/_representation/cube_summary.py
index 4e0fcfb1ea..1094588fa6 100644
--- a/lib/iris/_representation/cube_summary.py
+++ b/lib/iris/_representation/cube_summary.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Provides objects describing cube summaries.
"""
diff --git a/lib/iris/analysis/__init__.py b/lib/iris/analysis/__init__.py
index f00c3dd850..76dd52de6e 100644
--- a/lib/iris/analysis/__init__.py
+++ b/lib/iris/analysis/__init__.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
A package providing :class:`iris.cube.Cube` analysis support.
diff --git a/lib/iris/analysis/_area_weighted.py b/lib/iris/analysis/_area_weighted.py
index edead3948a..ffec82fd4e 100644
--- a/lib/iris/analysis/_area_weighted.py
+++ b/lib/iris/analysis/_area_weighted.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
import functools
import cf_units
diff --git a/lib/iris/analysis/_grid_angles.py b/lib/iris/analysis/_grid_angles.py
index 4cb449ae51..86a0c38086 100644
--- a/lib/iris/analysis/_grid_angles.py
+++ b/lib/iris/analysis/_grid_angles.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Code to implement vector rotation by angles, and inferring gridcell angles
from coordinate points and bounds.
diff --git a/lib/iris/analysis/_interpolation.py b/lib/iris/analysis/_interpolation.py
index 34dcae3026..091d29d7e2 100644
--- a/lib/iris/analysis/_interpolation.py
+++ b/lib/iris/analysis/_interpolation.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""A collection of helpers for interpolation."""
from collections import namedtuple
diff --git a/lib/iris/analysis/_regrid.py b/lib/iris/analysis/_regrid.py
index 65679cd968..113c21e6e3 100644
--- a/lib/iris/analysis/_regrid.py
+++ b/lib/iris/analysis/_regrid.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
import copy
import functools
diff --git a/lib/iris/analysis/calculus.py b/lib/iris/analysis/calculus.py
index 44b1adc580..f312aa02a0 100644
--- a/lib/iris/analysis/calculus.py
+++ b/lib/iris/analysis/calculus.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Calculus operations on :class:`iris.cube.Cube` instances.
diff --git a/lib/iris/analysis/cartography.py b/lib/iris/analysis/cartography.py
index 0fae5bc499..a760f5ab50 100644
--- a/lib/iris/analysis/cartography.py
+++ b/lib/iris/analysis/cartography.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Various utilities and numeric transformations relevant to cartography.
diff --git a/lib/iris/analysis/geometry.py b/lib/iris/analysis/geometry.py
index 9898f4e974..d7ed7f8840 100644
--- a/lib/iris/analysis/geometry.py
+++ b/lib/iris/analysis/geometry.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Various utilities related to geometric operations.
diff --git a/lib/iris/analysis/maths.py b/lib/iris/analysis/maths.py
index 5e180c6ee2..a24203ba2a 100644
--- a/lib/iris/analysis/maths.py
+++ b/lib/iris/analysis/maths.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Basic mathematical and statistical operations.
diff --git a/lib/iris/analysis/stats.py b/lib/iris/analysis/stats.py
index 711e3c5bfb..121d862adb 100644
--- a/lib/iris/analysis/stats.py
+++ b/lib/iris/analysis/stats.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Statistical operations between cubes.
diff --git a/lib/iris/analysis/trajectory.py b/lib/iris/analysis/trajectory.py
index 2495ff12fc..99c8add123 100644
--- a/lib/iris/analysis/trajectory.py
+++ b/lib/iris/analysis/trajectory.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Defines a Trajectory class, and a routine to extract a sub-cube along a
trajectory.
diff --git a/lib/iris/aux_factory.py b/lib/iris/aux_factory.py
index 323c89e3fb..61855f1188 100644
--- a/lib/iris/aux_factory.py
+++ b/lib/iris/aux_factory.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Definitions of derived coordinates.
diff --git a/lib/iris/common/__init__.py b/lib/iris/common/__init__.py
index d8e8ba80ef..8526c549c3 100644
--- a/lib/iris/common/__init__.py
+++ b/lib/iris/common/__init__.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
A package for provisioning common Iris infrastructure.
diff --git a/lib/iris/common/lenient.py b/lib/iris/common/lenient.py
index 7c530087af..43dc09d5db 100644
--- a/lib/iris/common/lenient.py
+++ b/lib/iris/common/lenient.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Provides the infrastructure to support lenient client/service behaviour.
diff --git a/lib/iris/common/metadata.py b/lib/iris/common/metadata.py
index 7def79f51e..8d60171331 100644
--- a/lib/iris/common/metadata.py
+++ b/lib/iris/common/metadata.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Provides the infrastructure to support the common metadata API.
diff --git a/lib/iris/common/mixin.py b/lib/iris/common/mixin.py
index 4c19dd756b..f3b42fc02d 100644
--- a/lib/iris/common/mixin.py
+++ b/lib/iris/common/mixin.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Provides common metadata mixin behaviour.
diff --git a/lib/iris/common/resolve.py b/lib/iris/common/resolve.py
index 8d5d57d4a4..83ca630353 100644
--- a/lib/iris/common/resolve.py
+++ b/lib/iris/common/resolve.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Provides the infrastructure to support the analysis, identification and
combination of metadata common between two :class:`~iris.cube.Cube`
diff --git a/lib/iris/config.py b/lib/iris/config.py
index b0060a0974..0c5bffd4a8 100644
--- a/lib/iris/config.py
+++ b/lib/iris/config.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Provides access to Iris-specific configuration values.
diff --git a/lib/iris/coord_categorisation.py b/lib/iris/coord_categorisation.py
index 698b4828f1..87103bf6f1 100644
--- a/lib/iris/coord_categorisation.py
+++ b/lib/iris/coord_categorisation.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Cube functions for coordinate categorisation.
@@ -271,20 +270,33 @@ def _validate_seasons(seasons):
return
-def _month_year_adjusts(seasons):
- """Compute the year adjustments required for each month.
+def _month_year_adjusts(seasons, use_year_at_season_start=False):
+ """
+ Compute the year adjustments required for each month.
- These determine whether the month belongs to a season in the same
- year or is in the start of a season that counts towards the next
- year.
+ These adjustments ensure that no season spans two years by assigning months
+ to the **next** year (use_year_at_season_start is False) or the
+ **previous** year (use_year_at_season_start is True). E.g. Winter - djf:
+ either assign Dec to the next year, or Jan and Feb to the previous year.
"""
- month_year_adjusts = [None, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
+ # 1 'slot' for each month, with an extra leading 'slot' because months
+ # are 1-indexed - January is 1, therefore corresponding to the 2nd
+ # array index.
+ month_year_adjusts = np.zeros(13, dtype=int)
+
for season in seasons:
- months = _months_in_season(season)
- for month in months:
- if month > months[-1]:
- month_year_adjusts[month] = 1
+ months = np.array(_months_in_season(season))
+ if use_year_at_season_start:
+ months_to_shift = months < months[0]
+ year_shift = -1
+ else:
+ # Sending forwards.
+ months_to_shift = months > months[-1]
+ year_shift = 1
+ indices_to_shift = months[np.flatnonzero(months_to_shift)]
+ month_year_adjusts[indices_to_shift] = year_shift
+
return month_year_adjusts
@@ -383,34 +395,40 @@ def _season_number(coord, value):
def add_season_year(
- cube, coord, name="season_year", seasons=("djf", "mam", "jja", "son")
+ cube,
+ coord,
+ name="season_year",
+ seasons=("djf", "mam", "jja", "son"),
+ use_year_at_season_start=False,
):
"""
- Add a categorical year-of-season coordinate, with user specified
- seasons.
-
- Args:
-
- * cube (:class:`iris.cube.Cube`):
- The cube containing 'coord'. The new coord will be added into
- it.
- * coord (:class:`iris.coords.Coord` or string):
- Coordinate in 'cube', or its name, representing time.
-
- Kwargs:
-
- * name (string):
- Name of the created coordinate. Defaults to "season_year".
- * seasons (:class:`list` of strings):
+ Add a categorical year-of-season coordinate, with user specified seasons.
+
+ Parameters
+ ----------
+ cube : :class:`iris.cube.Cube`
+ The cube containing `coord`. The new coord will be added into it.
+ coord : :class:`iris.coords.Coord` or str
+ Coordinate in `cube`, or its name, representing time.
+ name : str, default="season_year"
+ Name of the created coordinate.
+ seasons : tuple of str, default=("djf", "mam", "jja", "son")
List of seasons defined by month abbreviations. Each month must
appear once and only once. Defaults to standard meteorological
- seasons ('djf', 'mam', 'jja', 'son').
+ seasons (``djf``, ``mam``, ``jja``, ``son``).
+ use_year_at_season_start: bool, default=False
+ Seasons spanning the year boundary (e.g. Winter ``djf``) will belong
+ fully to the following year by default (e.g. the year of Jan and Feb).
+ Set to ``True`` for spanning seasons to belong to the preceding
+ year (e.g. the year of Dec) instead.
"""
# Check that the seasons are valid.
_validate_seasons(seasons)
# Define the adjustments to be made to the year.
- month_year_adjusts = _month_year_adjusts(seasons)
+ month_year_adjusts = _month_year_adjusts(
+ seasons, use_year_at_season_start=use_year_at_season_start
+ )
# Define a categorisation function.
def _season_year(coord, value):
diff --git a/lib/iris/coord_systems.py b/lib/iris/coord_systems.py
index 3d986fefce..e62f3fbf0e 100644
--- a/lib/iris/coord_systems.py
+++ b/lib/iris/coord_systems.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Definitions of coordinate systems.
diff --git a/lib/iris/coords.py b/lib/iris/coords.py
index d5ee2667d8..30de08d496 100644
--- a/lib/iris/coords.py
+++ b/lib/iris/coords.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Definitions of coordinates and other dimensional metadata.
diff --git a/lib/iris/cube.py b/lib/iris/cube.py
index 60fdbc9c94..3a36a035c0 100644
--- a/lib/iris/cube.py
+++ b/lib/iris/cube.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Classes for representing multi-dimensional data with metadata.
diff --git a/lib/iris/exceptions.py b/lib/iris/exceptions.py
index 919917a01d..c3e6b6193f 100644
--- a/lib/iris/exceptions.py
+++ b/lib/iris/exceptions.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Exceptions specific to the Iris package.
diff --git a/lib/iris/experimental/__init__.py b/lib/iris/experimental/__init__.py
index 40ba7fdb66..4c7c62b4f5 100644
--- a/lib/iris/experimental/__init__.py
+++ b/lib/iris/experimental/__init__.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Experimental code can be introduced to Iris through this package.
diff --git a/lib/iris/experimental/animate.py b/lib/iris/experimental/animate.py
index 1b6c2d46be..ba4e9e6050 100644
--- a/lib/iris/experimental/animate.py
+++ b/lib/iris/experimental/animate.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Wrapper for animating iris cubes using iris or matplotlib plotting functions
diff --git a/lib/iris/experimental/raster.py b/lib/iris/experimental/raster.py
index 7c95293469..6fe12ea82a 100644
--- a/lib/iris/experimental/raster.py
+++ b/lib/iris/experimental/raster.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Experimental module for importing/exporting raster data from Iris cubes using
the GDAL library.
diff --git a/lib/iris/experimental/regrid.py b/lib/iris/experimental/regrid.py
index d5fa7c6f72..f35a483b01 100644
--- a/lib/iris/experimental/regrid.py
+++ b/lib/iris/experimental/regrid.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Regridding functions.
diff --git a/lib/iris/experimental/regrid_conservative.py b/lib/iris/experimental/regrid_conservative.py
index fdc23c7bc4..83e65f89af 100644
--- a/lib/iris/experimental/regrid_conservative.py
+++ b/lib/iris/experimental/regrid_conservative.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Support for conservative regridding via ESMPy.
diff --git a/lib/iris/experimental/representation.py b/lib/iris/experimental/representation.py
index 116b340592..785bf43e63 100644
--- a/lib/iris/experimental/representation.py
+++ b/lib/iris/experimental/representation.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Definitions of how Iris objects should be represented.
diff --git a/lib/iris/experimental/stratify.py b/lib/iris/experimental/stratify.py
index a7cfbf6876..604fda38a3 100644
--- a/lib/iris/experimental/stratify.py
+++ b/lib/iris/experimental/stratify.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Routines for putting data on new strata (aka. isosurfaces), often in the
Z direction.
diff --git a/lib/iris/experimental/ugrid/__init__.py b/lib/iris/experimental/ugrid/__init__.py
index a3603a5355..30a934dfba 100644
--- a/lib/iris/experimental/ugrid/__init__.py
+++ b/lib/iris/experimental/ugrid/__init__.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Infra-structure for unstructured mesh support, based on
diff --git a/lib/iris/experimental/ugrid/cf.py b/lib/iris/experimental/ugrid/cf.py
index 42c1cfd0a3..ba365aeb1f 100644
--- a/lib/iris/experimental/ugrid/cf.py
+++ b/lib/iris/experimental/ugrid/cf.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Extensions to Iris' CF variable representation to represent CF UGrid variables.
diff --git a/lib/iris/experimental/ugrid/load.py b/lib/iris/experimental/ugrid/load.py
index 67d1491930..c2a4b0c563 100644
--- a/lib/iris/experimental/ugrid/load.py
+++ b/lib/iris/experimental/ugrid/load.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Extensions to Iris' NetCDF loading to allow the construction of
diff --git a/lib/iris/experimental/ugrid/mesh.py b/lib/iris/experimental/ugrid/mesh.py
index af557c345c..68d208d867 100644
--- a/lib/iris/experimental/ugrid/mesh.py
+++ b/lib/iris/experimental/ugrid/mesh.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Iris' data model representation of CF UGrid's Mesh and its constituent parts.
diff --git a/lib/iris/experimental/ugrid/metadata.py b/lib/iris/experimental/ugrid/metadata.py
index 44bbe04fe9..bfdcc7e114 100644
--- a/lib/iris/experimental/ugrid/metadata.py
+++ b/lib/iris/experimental/ugrid/metadata.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
The common metadata API classes for :mod:`iris.experimental.ugrid.mesh`.
diff --git a/lib/iris/experimental/ugrid/save.py b/lib/iris/experimental/ugrid/save.py
index 3c42137905..f09740d98c 100644
--- a/lib/iris/experimental/ugrid/save.py
+++ b/lib/iris/experimental/ugrid/save.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Extensions to Iris' NetCDF saving to allow
diff --git a/lib/iris/experimental/ugrid/utils.py b/lib/iris/experimental/ugrid/utils.py
index a13a43d3fd..05e60c3ce7 100644
--- a/lib/iris/experimental/ugrid/utils.py
+++ b/lib/iris/experimental/ugrid/utils.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Utility operations specific to unstructured data.
diff --git a/lib/iris/fileformats/__init__.py b/lib/iris/fileformats/__init__.py
index 86b304b82c..b74b420802 100644
--- a/lib/iris/fileformats/__init__.py
+++ b/lib/iris/fileformats/__init__.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
A package for converting cubes to and from specific file formats.
diff --git a/lib/iris/fileformats/_ff.py b/lib/iris/fileformats/_ff.py
index 5121b47976..76df5d5718 100644
--- a/lib/iris/fileformats/_ff.py
+++ b/lib/iris/fileformats/_ff.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Provides UK Met Office Fields File (FF) format specific capabilities.
diff --git a/lib/iris/fileformats/_ff_cross_references.py b/lib/iris/fileformats/_ff_cross_references.py
index ca41f5257f..b060ed42e9 100644
--- a/lib/iris/fileformats/_ff_cross_references.py
+++ b/lib/iris/fileformats/_ff_cross_references.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Table providing UM grid-code, field-code and pseudolevel-type for (some)
stash codes. Used in UM file i/o.
diff --git a/lib/iris/fileformats/_nc_load_rules/__init__.py b/lib/iris/fileformats/_nc_load_rules/__init__.py
index b102a082df..ca2f341249 100644
--- a/lib/iris/fileformats/_nc_load_rules/__init__.py
+++ b/lib/iris/fileformats/_nc_load_rules/__init__.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Support for cube-specific CF-to-Iris translation operations.
diff --git a/lib/iris/fileformats/_nc_load_rules/actions.py b/lib/iris/fileformats/_nc_load_rules/actions.py
index 44ef7ac549..7db15d21ac 100644
--- a/lib/iris/fileformats/_nc_load_rules/actions.py
+++ b/lib/iris/fileformats/_nc_load_rules/actions.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Replacement code for the Pyke rules.
diff --git a/lib/iris/fileformats/_nc_load_rules/engine.py b/lib/iris/fileformats/_nc_load_rules/engine.py
index 497c2a12c9..ec7a28777b 100644
--- a/lib/iris/fileformats/_nc_load_rules/engine.py
+++ b/lib/iris/fileformats/_nc_load_rules/engine.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
A simple mimic of the Pyke 'knowledge_engine', for interfacing to the routines
in 'iris.fileformats.netcdf' with minimal changes to that code.
diff --git a/lib/iris/fileformats/_nc_load_rules/helpers.py b/lib/iris/fileformats/_nc_load_rules/helpers.py
index 9c75c0e866..71e59feda0 100644
--- a/lib/iris/fileformats/_nc_load_rules/helpers.py
+++ b/lib/iris/fileformats/_nc_load_rules/helpers.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
All the pure-Python 'helper' functions which were previously included in the
Pyke rules database 'fc_rules_cf.krb'.
diff --git a/lib/iris/fileformats/_pp_lbproc_pairs.py b/lib/iris/fileformats/_pp_lbproc_pairs.py
index 7ad6f21848..86a5f9381d 100644
--- a/lib/iris/fileformats/_pp_lbproc_pairs.py
+++ b/lib/iris/fileformats/_pp_lbproc_pairs.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
import itertools
diff --git a/lib/iris/fileformats/_structured_array_identification.py b/lib/iris/fileformats/_structured_array_identification.py
index 11c62983e3..031a5e7483 100644
--- a/lib/iris/fileformats/_structured_array_identification.py
+++ b/lib/iris/fileformats/_structured_array_identification.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
r"""
The purpose of this module is to provide utilities for the identification
of multi-dimensional structure in a flat sequence of homogeneous objects.
diff --git a/lib/iris/fileformats/abf.py b/lib/iris/fileformats/abf.py
index 4dcd5ce6aa..26a1f307b2 100644
--- a/lib/iris/fileformats/abf.py
+++ b/lib/iris/fileformats/abf.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Provides ABF (and ABL) file format capabilities.
diff --git a/lib/iris/fileformats/cf.py b/lib/iris/fileformats/cf.py
index f412955adb..86960003db 100644
--- a/lib/iris/fileformats/cf.py
+++ b/lib/iris/fileformats/cf.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Provides the capability to load netCDF files and interpret them
according to the 'NetCDF Climate and Forecast (CF) Metadata Conventions'.
diff --git a/lib/iris/fileformats/dot.py b/lib/iris/fileformats/dot.py
index 50c02e4d04..e3a4493fe8 100644
--- a/lib/iris/fileformats/dot.py
+++ b/lib/iris/fileformats/dot.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Provides Creation and saving of DOT graphs for a :class:`iris.cube.Cube`.
diff --git a/lib/iris/fileformats/name.py b/lib/iris/fileformats/name.py
index 9a779cc92d..16f71a940f 100644
--- a/lib/iris/fileformats/name.py
+++ b/lib/iris/fileformats/name.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Provides NAME file format loading capabilities."""
diff --git a/lib/iris/fileformats/name_loaders.py b/lib/iris/fileformats/name_loaders.py
index cb8867b6ea..7cc7c61d81 100644
--- a/lib/iris/fileformats/name_loaders.py
+++ b/lib/iris/fileformats/name_loaders.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""NAME file format loading functions."""
import collections
diff --git a/lib/iris/fileformats/netcdf/__init__.py b/lib/iris/fileformats/netcdf/__init__.py
index bf3074af0e..cf550fbb57 100644
--- a/lib/iris/fileformats/netcdf/__init__.py
+++ b/lib/iris/fileformats/netcdf/__init__.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Support loading and saving NetCDF files using CF conventions for metadata interpretation.
diff --git a/lib/iris/fileformats/netcdf/_dask_locks.py b/lib/iris/fileformats/netcdf/_dask_locks.py
index 9f572d96cf..2ce5f8432a 100644
--- a/lib/iris/fileformats/netcdf/_dask_locks.py
+++ b/lib/iris/fileformats/netcdf/_dask_locks.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Module containing code to create locks enabling dask workers to co-operate.
diff --git a/lib/iris/fileformats/netcdf/_thread_safe_nc.py b/lib/iris/fileformats/netcdf/_thread_safe_nc.py
index 36e66a98f6..5abffb896f 100644
--- a/lib/iris/fileformats/netcdf/_thread_safe_nc.py
+++ b/lib/iris/fileformats/netcdf/_thread_safe_nc.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Module to ensure all calls to the netCDF4 library are thread-safe.
diff --git a/lib/iris/fileformats/netcdf/loader.py b/lib/iris/fileformats/netcdf/loader.py
index ea127cc197..c07b6af5f4 100644
--- a/lib/iris/fileformats/netcdf/loader.py
+++ b/lib/iris/fileformats/netcdf/loader.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Support loading Iris cubes from NetCDF files using the CF conventions for metadata interpretation.
diff --git a/lib/iris/fileformats/netcdf/saver.py b/lib/iris/fileformats/netcdf/saver.py
index 2472047bb2..895ceb60e7 100644
--- a/lib/iris/fileformats/netcdf/saver.py
+++ b/lib/iris/fileformats/netcdf/saver.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Module to support the saving of Iris cubes to a NetCDF file.
diff --git a/lib/iris/fileformats/nimrod.py b/lib/iris/fileformats/nimrod.py
index 6f39ca87fa..d4e86502bd 100644
--- a/lib/iris/fileformats/nimrod.py
+++ b/lib/iris/fileformats/nimrod.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Provides NIMROD file format capabilities."""
import glob
diff --git a/lib/iris/fileformats/nimrod_load_rules.py b/lib/iris/fileformats/nimrod_load_rules.py
index 17db0644ee..7347135422 100644
--- a/lib/iris/fileformats/nimrod_load_rules.py
+++ b/lib/iris/fileformats/nimrod_load_rules.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Rules for converting NIMROD fields into cubes."""
import re
diff --git a/lib/iris/fileformats/pp.py b/lib/iris/fileformats/pp.py
index e19ba3adff..4b2b7eeae0 100644
--- a/lib/iris/fileformats/pp.py
+++ b/lib/iris/fileformats/pp.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Provides UK Met Office Post Process (PP) format specific capabilities.
diff --git a/lib/iris/fileformats/pp_load_rules.py b/lib/iris/fileformats/pp_load_rules.py
index 11d03e978a..1aed25311d 100644
--- a/lib/iris/fileformats/pp_load_rules.py
+++ b/lib/iris/fileformats/pp_load_rules.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
# Historically this was auto-generated from
diff --git a/lib/iris/fileformats/pp_save_rules.py b/lib/iris/fileformats/pp_save_rules.py
index 998255ff2b..7db21d5f99 100644
--- a/lib/iris/fileformats/pp_save_rules.py
+++ b/lib/iris/fileformats/pp_save_rules.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
import warnings
diff --git a/lib/iris/fileformats/rules.py b/lib/iris/fileformats/rules.py
index d5a4b9c823..bcfd4f8323 100644
--- a/lib/iris/fileformats/rules.py
+++ b/lib/iris/fileformats/rules.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Generalised mechanisms for metadata translation and cube construction.
diff --git a/lib/iris/fileformats/um/__init__.py b/lib/iris/fileformats/um/__init__.py
index c01e8301e2..ac38e45de5 100644
--- a/lib/iris/fileformats/um/__init__.py
+++ b/lib/iris/fileformats/um/__init__.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Provides iris loading support for UM Fieldsfile-like file types, and PP.
diff --git a/lib/iris/fileformats/um/_fast_load.py b/lib/iris/fileformats/um/_fast_load.py
index e29025c169..ce9d183586 100644
--- a/lib/iris/fileformats/um/_fast_load.py
+++ b/lib/iris/fileformats/um/_fast_load.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Support for "fast" loading of structured UM files in iris load functions,
i.e. :meth:`iris.load` and its associates.
diff --git a/lib/iris/fileformats/um/_fast_load_structured_fields.py b/lib/iris/fileformats/um/_fast_load_structured_fields.py
index 64b7f8e891..2a41cf99ba 100644
--- a/lib/iris/fileformats/um/_fast_load_structured_fields.py
+++ b/lib/iris/fileformats/um/_fast_load_structured_fields.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Code for fast loading of structured UM data.
diff --git a/lib/iris/fileformats/um/_ff_replacement.py b/lib/iris/fileformats/um/_ff_replacement.py
index 0a661081c7..33ab2fbb68 100644
--- a/lib/iris/fileformats/um/_ff_replacement.py
+++ b/lib/iris/fileformats/um/_ff_replacement.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Support for UM "fieldsfile-like" files.
diff --git a/lib/iris/fileformats/um/_optimal_array_structuring.py b/lib/iris/fileformats/um/_optimal_array_structuring.py
index 2793d47187..3fd892808b 100644
--- a/lib/iris/fileformats/um/_optimal_array_structuring.py
+++ b/lib/iris/fileformats/um/_optimal_array_structuring.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""A module to provide an optimal array structure calculation."""
diff --git a/lib/iris/fileformats/um_cf_map.py b/lib/iris/fileformats/um_cf_map.py
index b93b192bbd..d2e51a3257 100644
--- a/lib/iris/fileformats/um_cf_map.py
+++ b/lib/iris/fileformats/um_cf_map.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Provides UM/CF phenomenon translations.
diff --git a/lib/iris/io/__init__.py b/lib/iris/io/__init__.py
index 34be79135c..16f7af48e6 100644
--- a/lib/iris/io/__init__.py
+++ b/lib/iris/io/__init__.py
@@ -1,8 +1,8 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
+
"""Provides an interface to manage URI scheme support in iris."""
import collections
diff --git a/lib/iris/io/format_picker.py b/lib/iris/io/format_picker.py
index 30cb741f49..bfc728f575 100644
--- a/lib/iris/io/format_picker.py
+++ b/lib/iris/io/format_picker.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Provide convenient file format identification.
diff --git a/lib/iris/iterate.py b/lib/iris/iterate.py
index cc82433e85..cd950828be 100644
--- a/lib/iris/iterate.py
+++ b/lib/iris/iterate.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Cube functions for iteration in step.
diff --git a/lib/iris/palette.py b/lib/iris/palette.py
index 3ba17ffc97..f640cf5687 100644
--- a/lib/iris/palette.py
+++ b/lib/iris/palette.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Load, configure and register color map palettes and initialise
color map meta-data mappings.
diff --git a/lib/iris/pandas.py b/lib/iris/pandas.py
index 0d0e65d648..535bed3a64 100644
--- a/lib/iris/pandas.py
+++ b/lib/iris/pandas.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Provide conversion to and from Pandas data structures.
diff --git a/lib/iris/plot.py b/lib/iris/plot.py
index b32b45195a..977cbbcfc2 100644
--- a/lib/iris/plot.py
+++ b/lib/iris/plot.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Iris-specific extensions to matplotlib, mimicking the :mod:`matplotlib.pyplot`
interface.
diff --git a/lib/iris/quickplot.py b/lib/iris/quickplot.py
index 12b5e80697..15f4cf11e2 100644
--- a/lib/iris/quickplot.py
+++ b/lib/iris/quickplot.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
High-level plotting extensions to :mod:`iris.plot`.
diff --git a/lib/iris/symbols.py b/lib/iris/symbols.py
index 3d00d3bb3b..7bbbca83a9 100644
--- a/lib/iris/symbols.py
+++ b/lib/iris/symbols.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Contains symbol definitions for use with :func:`iris.plot.symbols`.
diff --git a/lib/iris/tests/__init__.py b/lib/iris/tests/__init__.py
index 5529b899c5..83fdb6af89 100644
--- a/lib/iris/tests/__init__.py
+++ b/lib/iris/tests/__init__.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Provides testing capabilities and customisations specific to Iris.
diff --git a/lib/iris/tests/experimental/__init__.py b/lib/iris/tests/experimental/__init__.py
index fa2390c45b..d31931720c 100644
--- a/lib/iris/tests/experimental/__init__.py
+++ b/lib/iris/tests/experimental/__init__.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Experimental code is tested in this package.
diff --git a/lib/iris/tests/experimental/regrid/__init__.py b/lib/iris/tests/experimental/regrid/__init__.py
index 653505e3d5..6837b12e91 100644
--- a/lib/iris/tests/experimental/regrid/__init__.py
+++ b/lib/iris/tests/experimental/regrid/__init__.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Regridding code is tested in this package.
diff --git a/lib/iris/tests/experimental/regrid/test_regrid_area_weighted_rectilinear_src_and_grid.py b/lib/iris/tests/experimental/regrid/test_regrid_area_weighted_rectilinear_src_and_grid.py
index 07961a319a..93b1a6d3e6 100644
--- a/lib/iris/tests/experimental/regrid/test_regrid_area_weighted_rectilinear_src_and_grid.py
+++ b/lib/iris/tests/experimental/regrid/test_regrid_area_weighted_rectilinear_src_and_grid.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Test area weighted regridding.
diff --git a/lib/iris/tests/experimental/regrid/test_regrid_conservative_via_esmpy.py b/lib/iris/tests/experimental/regrid/test_regrid_conservative_via_esmpy.py
index 467c040eb3..2c7bad59ff 100644
--- a/lib/iris/tests/experimental/regrid/test_regrid_conservative_via_esmpy.py
+++ b/lib/iris/tests/experimental/regrid/test_regrid_conservative_via_esmpy.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Tests for :func:`iris.experimental.regrid.regrid_conservative_via_esmpy`.
diff --git a/lib/iris/tests/experimental/test_raster.py b/lib/iris/tests/experimental/test_raster.py
index ffd03e6f4d..736263f196 100644
--- a/lib/iris/tests/experimental/test_raster.py
+++ b/lib/iris/tests/experimental/test_raster.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
import iris.tests as tests # isort:skip
import PIL.Image
diff --git a/lib/iris/tests/graphics/__init__.py b/lib/iris/tests/graphics/__init__.py
index 5ee555cb6e..3c440264f9 100755
--- a/lib/iris/tests/graphics/__init__.py
+++ b/lib/iris/tests/graphics/__init__.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
# !/usr/bin/env python
"""
Contains Iris graphic testing utilities
diff --git a/lib/iris/tests/graphics/idiff.py b/lib/iris/tests/graphics/idiff.py
index 4af7f4726d..1c29d4e551 100755
--- a/lib/iris/tests/graphics/idiff.py
+++ b/lib/iris/tests/graphics/idiff.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
# !/usr/bin/env python
"""
Provides "diff-like" comparison of images.
diff --git a/lib/iris/tests/graphics/recreate_imagerepo.py b/lib/iris/tests/graphics/recreate_imagerepo.py
index 02ddaad2cb..cd4c83e9b1 100755
--- a/lib/iris/tests/graphics/recreate_imagerepo.py
+++ b/lib/iris/tests/graphics/recreate_imagerepo.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
# !/usr/bin/env python
"""
Updates imagerepo.json based on the baseline images
diff --git a/lib/iris/tests/integration/__init__.py b/lib/iris/tests/integration/__init__.py
index 71b911cbb0..29a99030dd 100644
--- a/lib/iris/tests/integration/__init__.py
+++ b/lib/iris/tests/integration/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Integration tests for the :mod:`iris` package."""
diff --git a/lib/iris/tests/integration/analysis/__init__.py b/lib/iris/tests/integration/analysis/__init__.py
index 20b6250b70..4ec86f2d5a 100644
--- a/lib/iris/tests/integration/analysis/__init__.py
+++ b/lib/iris/tests/integration/analysis/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Integration tests for the :mod:`iris.analysis` package."""
diff --git a/lib/iris/tests/integration/analysis/test_area_weighted.py b/lib/iris/tests/integration/analysis/test_area_weighted.py
index d01da79a56..49c80d7bba 100644
--- a/lib/iris/tests/integration/analysis/test_area_weighted.py
+++ b/lib/iris/tests/integration/analysis/test_area_weighted.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Integration tests for area weighted regridding."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/integration/aux_factory/__init__.py b/lib/iris/tests/integration/aux_factory/__init__.py
index 58ba6fb82b..3ee14d5add 100644
--- a/lib/iris/tests/integration/aux_factory/__init__.py
+++ b/lib/iris/tests/integration/aux_factory/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Integration tests for the :mod:`iris.aux_factory` package."""
diff --git a/lib/iris/tests/integration/aux_factory/test_OceanSigmaZFactory.py b/lib/iris/tests/integration/aux_factory/test_OceanSigmaZFactory.py
index 4b2464b272..15f65d52ad 100644
--- a/lib/iris/tests/integration/aux_factory/test_OceanSigmaZFactory.py
+++ b/lib/iris/tests/integration/aux_factory/test_OceanSigmaZFactory.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Integratation tests for the
`iris.aux_factory.OceanSigmaZFactory` class.
diff --git a/lib/iris/tests/integration/concatenate/__init__.py b/lib/iris/tests/integration/concatenate/__init__.py
index fb136098ee..d15b201abe 100644
--- a/lib/iris/tests/integration/concatenate/__init__.py
+++ b/lib/iris/tests/integration/concatenate/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Integration tests for the :mod:`iris._concatenate` package."""
diff --git a/lib/iris/tests/integration/concatenate/test_concatenate.py b/lib/iris/tests/integration/concatenate/test_concatenate.py
index 2543e2931b..9bd6bcb0c5 100644
--- a/lib/iris/tests/integration/concatenate/test_concatenate.py
+++ b/lib/iris/tests/integration/concatenate/test_concatenate.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Integration tests for concatenating cubes with differing time coord epochs
using :func:`iris.util.unify_time_units`.
diff --git a/lib/iris/tests/integration/experimental/__init__.py b/lib/iris/tests/integration/experimental/__init__.py
index 269cf3dd9a..79722df7a3 100644
--- a/lib/iris/tests/integration/experimental/__init__.py
+++ b/lib/iris/tests/integration/experimental/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Integration tests for the :mod:`iris.experimental` package."""
diff --git a/lib/iris/tests/integration/experimental/test_CubeRepresentation.py b/lib/iris/tests/integration/experimental/test_CubeRepresentation.py
index 48a3e51b52..0c1386d59f 100644
--- a/lib/iris/tests/integration/experimental/test_CubeRepresentation.py
+++ b/lib/iris/tests/integration/experimental/test_CubeRepresentation.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Integration tests for cube html representation."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/integration/experimental/test_regrid_ProjectedUnstructured.py b/lib/iris/tests/integration/experimental/test_regrid_ProjectedUnstructured.py
index 742adc8c15..4ae48fe6f9 100644
--- a/lib/iris/tests/integration/experimental/test_regrid_ProjectedUnstructured.py
+++ b/lib/iris/tests/integration/experimental/test_regrid_ProjectedUnstructured.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Integration tests for experimental regridding."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/integration/experimental/test_ugrid_load.py b/lib/iris/tests/integration/experimental/test_ugrid_load.py
index d94e85d2f5..1bd39695ec 100644
--- a/lib/iris/tests/integration/experimental/test_ugrid_load.py
+++ b/lib/iris/tests/integration/experimental/test_ugrid_load.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Integration tests for NetCDF-UGRID file loading.
diff --git a/lib/iris/tests/integration/experimental/test_ugrid_save.py b/lib/iris/tests/integration/experimental/test_ugrid_save.py
index 803ac71caa..710ed6941d 100644
--- a/lib/iris/tests/integration/experimental/test_ugrid_save.py
+++ b/lib/iris/tests/integration/experimental/test_ugrid_save.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Integration tests for NetCDF-UGRID file saving.
diff --git a/lib/iris/tests/integration/fast_load/__init__.py b/lib/iris/tests/integration/fast_load/__init__.py
index a94785ca58..40fc56f129 100644
--- a/lib/iris/tests/integration/fast_load/__init__.py
+++ b/lib/iris/tests/integration/fast_load/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Integration tests for :mod:`iris.fileformats.um` fast load functions."""
diff --git a/lib/iris/tests/integration/fast_load/test_fast_load.py b/lib/iris/tests/integration/fast_load/test_fast_load.py
index 318292615b..a37f1eef07 100644
--- a/lib/iris/tests/integration/fast_load/test_fast_load.py
+++ b/lib/iris/tests/integration/fast_load/test_fast_load.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Integration tests for fast-loading FF and PP files."""
# import iris tests first so that some things can be initialised
diff --git a/lib/iris/tests/integration/merge/__init__.py b/lib/iris/tests/integration/merge/__init__.py
index 9374976532..ae16d4fe45 100644
--- a/lib/iris/tests/integration/merge/__init__.py
+++ b/lib/iris/tests/integration/merge/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Integration tests for the :mod:`iris._merge` package."""
diff --git a/lib/iris/tests/integration/merge/test_merge.py b/lib/iris/tests/integration/merge/test_merge.py
index f5f92a7a7d..87b52fd85d 100644
--- a/lib/iris/tests/integration/merge/test_merge.py
+++ b/lib/iris/tests/integration/merge/test_merge.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Integration tests for merging cubes.
diff --git a/lib/iris/tests/integration/netcdf/__init__.py b/lib/iris/tests/integration/netcdf/__init__.py
index f500b52520..bd62b4d988 100644
--- a/lib/iris/tests/integration/netcdf/__init__.py
+++ b/lib/iris/tests/integration/netcdf/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Integration tests for loading and saving netcdf files."""
diff --git a/lib/iris/tests/integration/netcdf/test__dask_locks.py b/lib/iris/tests/integration/netcdf/test__dask_locks.py
index c41af1b356..70891bc40c 100644
--- a/lib/iris/tests/integration/netcdf/test__dask_locks.py
+++ b/lib/iris/tests/integration/netcdf/test__dask_locks.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the :mod:`iris.fileformats.netcdf._dask_locks` package.
diff --git a/lib/iris/tests/integration/netcdf/test_attributes.py b/lib/iris/tests/integration/netcdf/test_attributes.py
index a73d6c7d49..aab91bcb31 100644
--- a/lib/iris/tests/integration/netcdf/test_attributes.py
+++ b/lib/iris/tests/integration/netcdf/test_attributes.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Integration tests for attribute-related loading and saving netcdf files."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/integration/netcdf/test_aux_factories.py b/lib/iris/tests/integration/netcdf/test_aux_factories.py
index d89f275336..6b3dde6fd1 100644
--- a/lib/iris/tests/integration/netcdf/test_aux_factories.py
+++ b/lib/iris/tests/integration/netcdf/test_aux_factories.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Integration tests for aux-factory-related loading and saving netcdf files."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/integration/netcdf/test_coord_systems.py b/lib/iris/tests/integration/netcdf/test_coord_systems.py
index 3175664b4c..b7b21911e5 100644
--- a/lib/iris/tests/integration/netcdf/test_coord_systems.py
+++ b/lib/iris/tests/integration/netcdf/test_coord_systems.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Integration tests for coord-system-related loading and saving netcdf files."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/integration/netcdf/test_delayed_save.py b/lib/iris/tests/integration/netcdf/test_delayed_save.py
index 09f6235aab..d3f2ce22c4 100644
--- a/lib/iris/tests/integration/netcdf/test_delayed_save.py
+++ b/lib/iris/tests/integration/netcdf/test_delayed_save.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Integration tests for delayed saving.
"""
diff --git a/lib/iris/tests/integration/netcdf/test_general.py b/lib/iris/tests/integration/netcdf/test_general.py
index 6214f09e7e..0fc619e4cb 100644
--- a/lib/iris/tests/integration/netcdf/test_general.py
+++ b/lib/iris/tests/integration/netcdf/test_general.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Integration tests for loading and saving netcdf files."""
# Import iris.tests first so that some things can be initialised before
# importing anything else.
diff --git a/lib/iris/tests/integration/netcdf/test_self_referencing.py b/lib/iris/tests/integration/netcdf/test_self_referencing.py
index 554fabb4fc..4e5da18bbd 100644
--- a/lib/iris/tests/integration/netcdf/test_self_referencing.py
+++ b/lib/iris/tests/integration/netcdf/test_self_referencing.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Integration tests for iris#3367 - loading a self-referencing NetCDF file."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/integration/netcdf/test_thread_safety.py b/lib/iris/tests/integration/netcdf/test_thread_safety.py
index c5779250a2..916cbf67e1 100644
--- a/lib/iris/tests/integration/netcdf/test_thread_safety.py
+++ b/lib/iris/tests/integration/netcdf/test_thread_safety.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Integration tests covering thread safety during loading/saving netcdf files.
diff --git a/lib/iris/tests/integration/plot/__init__.py b/lib/iris/tests/integration/plot/__init__.py
index aafa488e2d..c67303c0f3 100644
--- a/lib/iris/tests/integration/plot/__init__.py
+++ b/lib/iris/tests/integration/plot/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Integration tests for the :mod:`iris.plot` package."""
diff --git a/lib/iris/tests/integration/plot/test_animate.py b/lib/iris/tests/integration/plot/test_animate.py
index ef19dbb108..1354ef4289 100644
--- a/lib/iris/tests/integration/plot/test_animate.py
+++ b/lib/iris/tests/integration/plot/test_animate.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Integration tests for :func:`iris.plot.animate`.
diff --git a/lib/iris/tests/integration/plot/test_colorbar.py b/lib/iris/tests/integration/plot/test_colorbar.py
index a306e6c82f..c742564c7d 100644
--- a/lib/iris/tests/integration/plot/test_colorbar.py
+++ b/lib/iris/tests/integration/plot/test_colorbar.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Test interaction between :mod:`iris.plot` and
:func:`matplotlib.pyplot.colorbar`
diff --git a/lib/iris/tests/integration/plot/test_netcdftime.py b/lib/iris/tests/integration/plot/test_netcdftime.py
index d438c09bd5..2b3a59d093 100644
--- a/lib/iris/tests/integration/plot/test_netcdftime.py
+++ b/lib/iris/tests/integration/plot/test_netcdftime.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Test plot of time coord with non-standard calendar.
diff --git a/lib/iris/tests/integration/plot/test_nzdateline.py b/lib/iris/tests/integration/plot/test_nzdateline.py
index 0051549794..2c9360e9ea 100644
--- a/lib/iris/tests/integration/plot/test_nzdateline.py
+++ b/lib/iris/tests/integration/plot/test_nzdateline.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Test set up of limited area map extents which bridge the date line.
diff --git a/lib/iris/tests/integration/plot/test_plot_2d_coords.py b/lib/iris/tests/integration/plot/test_plot_2d_coords.py
index 1b95899803..673f8817d6 100644
--- a/lib/iris/tests/integration/plot/test_plot_2d_coords.py
+++ b/lib/iris/tests/integration/plot/test_plot_2d_coords.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Test plots with two dimensional coordinates.
diff --git a/lib/iris/tests/integration/plot/test_vector_plots.py b/lib/iris/tests/integration/plot/test_vector_plots.py
index 37f506bd17..652a205fd8 100644
--- a/lib/iris/tests/integration/plot/test_vector_plots.py
+++ b/lib/iris/tests/integration/plot/test_vector_plots.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Test some key usages of :func:`iris.plot.quiver`.
diff --git a/lib/iris/tests/integration/test_Datums.py b/lib/iris/tests/integration/test_Datums.py
index 43287c7040..8325ad901a 100755
--- a/lib/iris/tests/integration/test_Datums.py
+++ b/lib/iris/tests/integration/test_Datums.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Integration tests for :class:`iris.coord_systems` datum support."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/integration/test_PartialDateTime.py b/lib/iris/tests/integration/test_PartialDateTime.py
index 563af1035c..ed995beda7 100644
--- a/lib/iris/tests/integration/test_PartialDateTime.py
+++ b/lib/iris/tests/integration/test_PartialDateTime.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Integration tests for :class:`iris.time.PartialDateTime`."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/integration/test_climatology.py b/lib/iris/tests/integration/test_climatology.py
index 54d43858fb..f15428eb9d 100644
--- a/lib/iris/tests/integration/test_climatology.py
+++ b/lib/iris/tests/integration/test_climatology.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Integration tests for loading and saving netcdf files."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/integration/test_cube.py b/lib/iris/tests/integration/test_cube.py
index ad6666d28e..8f3ac5fb48 100644
--- a/lib/iris/tests/integration/test_cube.py
+++ b/lib/iris/tests/integration/test_cube.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Integration tests for :class:`iris.cube.Cube`."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/integration/test_ff.py b/lib/iris/tests/integration/test_ff.py
index 0b0ccf4c5c..b613da385f 100644
--- a/lib/iris/tests/integration/test_ff.py
+++ b/lib/iris/tests/integration/test_ff.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Integration tests for loading LBC fieldsfiles."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/integration/test_new_axis.py b/lib/iris/tests/integration/test_new_axis.py
index 876eccbb63..7c8da13ae5 100644
--- a/lib/iris/tests/integration/test_new_axis.py
+++ b/lib/iris/tests/integration/test_new_axis.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Integration tests for :func:`iris.util.new_axis`."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/integration/test_pickle.py b/lib/iris/tests/integration/test_pickle.py
index fa5ddbd73e..7317855512 100644
--- a/lib/iris/tests/integration/test_pickle.py
+++ b/lib/iris/tests/integration/test_pickle.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Integration tests for pickling things."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/integration/test_pp.py b/lib/iris/tests/integration/test_pp.py
index 026bdae58a..bab925bd7e 100644
--- a/lib/iris/tests/integration/test_pp.py
+++ b/lib/iris/tests/integration/test_pp.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Integration tests for loading and saving PP files."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/integration/test_pp_constrained_load_cubes.py b/lib/iris/tests/integration/test_pp_constrained_load_cubes.py
index 7ddf39b2ff..5ba8978ed1 100644
--- a/lib/iris/tests/integration/test_pp_constrained_load_cubes.py
+++ b/lib/iris/tests/integration/test_pp_constrained_load_cubes.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Integration tests for :func:`iris.fileformats.rules.load_cubes`."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/integration/test_regrid_equivalence.py b/lib/iris/tests/integration/test_regrid_equivalence.py
index 09b47072e0..6bcb1ce403 100644
--- a/lib/iris/tests/integration/test_regrid_equivalence.py
+++ b/lib/iris/tests/integration/test_regrid_equivalence.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Tests to check the validity of replacing
"iris.analysis._interpolate.regrid`('nearest')" with
diff --git a/lib/iris/tests/integration/test_regridding.py b/lib/iris/tests/integration/test_regridding.py
index 3e87a8d0aa..44e9fef22e 100644
--- a/lib/iris/tests/integration/test_regridding.py
+++ b/lib/iris/tests/integration/test_regridding.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Integration tests for regridding."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/integration/test_subset.py b/lib/iris/tests/integration/test_subset.py
index bc2029afba..457616cee3 100644
--- a/lib/iris/tests/integration/test_subset.py
+++ b/lib/iris/tests/integration/test_subset.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Integration tests for subset."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/integration/test_trajectory.py b/lib/iris/tests/integration/test_trajectory.py
index a8e3acaa41..abe8fd0a2e 100644
--- a/lib/iris/tests/integration/test_trajectory.py
+++ b/lib/iris/tests/integration/test_trajectory.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Integration tests for :mod:`iris.analysis.trajectory`."""
# import iris tests first so that some things can be initialised before
diff --git a/lib/iris/tests/integration/um/__init__.py b/lib/iris/tests/integration/um/__init__.py
index a94785ca58..40fc56f129 100644
--- a/lib/iris/tests/integration/um/__init__.py
+++ b/lib/iris/tests/integration/um/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Integration tests for :mod:`iris.fileformats.um` fast load functions."""
diff --git a/lib/iris/tests/integration/um/test_fieldsfile.py b/lib/iris/tests/integration/um/test_fieldsfile.py
index 56b88c2b6d..2aff7a2989 100644
--- a/lib/iris/tests/integration/um/test_fieldsfile.py
+++ b/lib/iris/tests/integration/um/test_fieldsfile.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Test the fast loading of structured Fieldsfiles.
diff --git a/lib/iris/tests/pp.py b/lib/iris/tests/pp.py
index d8eb3256c4..3e07ccbd7f 100644
--- a/lib/iris/tests/pp.py
+++ b/lib/iris/tests/pp.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
import contextlib
import os.path
diff --git a/lib/iris/tests/stock/__init__.py b/lib/iris/tests/stock/__init__.py
index 632dc95e20..c66c13bba5 100644
--- a/lib/iris/tests/stock/__init__.py
+++ b/lib/iris/tests/stock/__init__.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
A collection of routines which create standard Cubes/files for test purposes.
diff --git a/lib/iris/tests/stock/_stock_2d_latlons.py b/lib/iris/tests/stock/_stock_2d_latlons.py
index 4733a15305..889f8bce12 100644
--- a/lib/iris/tests/stock/_stock_2d_latlons.py
+++ b/lib/iris/tests/stock/_stock_2d_latlons.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Extra stock routines for making and manipulating cubes with 2d coordinates,
to mimic ocean grid data.
diff --git a/lib/iris/tests/stock/mesh.py b/lib/iris/tests/stock/mesh.py
index da226a3790..7726849252 100644
--- a/lib/iris/tests/stock/mesh.py
+++ b/lib/iris/tests/stock/mesh.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Helper functions making objects for unstructured mesh testing."""
diff --git a/lib/iris/tests/stock/netcdf.py b/lib/iris/tests/stock/netcdf.py
index bf93f01f6b..0f6a08b596 100644
--- a/lib/iris/tests/stock/netcdf.py
+++ b/lib/iris/tests/stock/netcdf.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Routines for generating synthetic NetCDF files from template headers."""
from pathlib import Path
diff --git a/lib/iris/tests/system_test.py b/lib/iris/tests/system_test.py
index 745163b485..440b544f94 100644
--- a/lib/iris/tests/system_test.py
+++ b/lib/iris/tests/system_test.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
diff --git a/lib/iris/tests/test_abf.py b/lib/iris/tests/test_abf.py
index 0b398879fc..92ed337710 100644
--- a/lib/iris/tests/test_abf.py
+++ b/lib/iris/tests/test_abf.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
# import iris tests first so that some things can be initialised before
# importing anything else
diff --git a/lib/iris/tests/test_aggregate_by.py b/lib/iris/tests/test_aggregate_by.py
index e5614f6b63..e34d2ff1bd 100644
--- a/lib/iris/tests/test_aggregate_by.py
+++ b/lib/iris/tests/test_aggregate_by.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
# import iris tests first so that some things can be initialised before
# importing anything else
diff --git a/lib/iris/tests/test_analysis.py b/lib/iris/tests/test_analysis.py
index 0d88a23055..f611e25c4e 100644
--- a/lib/iris/tests/test_analysis.py
+++ b/lib/iris/tests/test_analysis.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
# import iris tests first so that some things can be initialised before importing anything else
diff --git a/lib/iris/tests/test_analysis_calculus.py b/lib/iris/tests/test_analysis_calculus.py
index 86cc79092b..36e008f38e 100644
--- a/lib/iris/tests/test_analysis_calculus.py
+++ b/lib/iris/tests/test_analysis_calculus.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
# import iris tests first so that some things can be initialised before importing anything else
import iris.tests as tests # isort:skip
diff --git a/lib/iris/tests/test_basic_maths.py b/lib/iris/tests/test_basic_maths.py
index 4d92b9a92c..c0329b72d6 100644
--- a/lib/iris/tests/test_basic_maths.py
+++ b/lib/iris/tests/test_basic_maths.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
# import iris tests first so that some things can be initialised before importing anything else
import iris.tests as tests # isort:skip
diff --git a/lib/iris/tests/test_cartography.py b/lib/iris/tests/test_cartography.py
index c9647dc48e..58dccb78aa 100644
--- a/lib/iris/tests/test_cartography.py
+++ b/lib/iris/tests/test_cartography.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Tests elements of the cartography module.
diff --git a/lib/iris/tests/test_cdm.py b/lib/iris/tests/test_cdm.py
index 0abb35c566..c748b9dfd4 100644
--- a/lib/iris/tests/test_cdm.py
+++ b/lib/iris/tests/test_cdm.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Test cube indexing, slicing, and extracting, and also the dot graphs.
diff --git a/lib/iris/tests/test_cell.py b/lib/iris/tests/test_cell.py
index 21d2603072..3925d9b0a7 100644
--- a/lib/iris/tests/test_cell.py
+++ b/lib/iris/tests/test_cell.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
# import iris tests first so that some things can be initialised before importing anything else
import iris.tests as tests # isort:skip
diff --git a/lib/iris/tests/test_cf.py b/lib/iris/tests/test_cf.py
index 3abd6b981b..70f24478d2 100644
--- a/lib/iris/tests/test_cf.py
+++ b/lib/iris/tests/test_cf.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Test the cf module.
diff --git a/lib/iris/tests/test_coding_standards.py b/lib/iris/tests/test_coding_standards.py
index 54309e3906..e3a1d2eaf3 100644
--- a/lib/iris/tests/test_coding_standards.py
+++ b/lib/iris/tests/test_coding_standards.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
# import iris.tests first so that some things can be initialised before
# importing anything else
@@ -23,9 +22,8 @@
LICENSE_TEMPLATE = """# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details."""
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details."""
# Guess iris repo directory of Iris - realpath is used to mitigate against
# Python finding the iris package via a symlink.
diff --git a/lib/iris/tests/test_concatenate.py b/lib/iris/tests/test_concatenate.py
index ec92838466..7d28d48c31 100644
--- a/lib/iris/tests/test_concatenate.py
+++ b/lib/iris/tests/test_concatenate.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Test the cube concatenate mechanism.
diff --git a/lib/iris/tests/test_constraints.py b/lib/iris/tests/test_constraints.py
index e568105f91..b034525ff2 100644
--- a/lib/iris/tests/test_constraints.py
+++ b/lib/iris/tests/test_constraints.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Test the constrained cube loading mechanism.
diff --git a/lib/iris/tests/test_coord_api.py b/lib/iris/tests/test_coord_api.py
index ea99ae06df..5eb12ba1f3 100644
--- a/lib/iris/tests/test_coord_api.py
+++ b/lib/iris/tests/test_coord_api.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
# import iris tests first so that some things can be initialised before
diff --git a/lib/iris/tests/test_coord_categorisation.py b/lib/iris/tests/test_coord_categorisation.py
deleted file mode 100644
index 0206ba66a5..0000000000
--- a/lib/iris/tests/test_coord_categorisation.py
+++ /dev/null
@@ -1,197 +0,0 @@
-# Copyright Iris contributors
-#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
-"""
-Test the coordinate categorisation functions.
-"""
-
-# import iris tests first so that some things can be initialised before importing anything else
-import iris.tests as tests # isort:skip
-
-import warnings
-
-import cf_units
-import numpy as np
-
-import iris
-import iris.coord_categorisation as ccat
-
-CATEGORISATION_FUNCS = (
- ccat.add_day_of_month,
- ccat.add_day_of_year,
- ccat.add_weekday,
- ccat.add_weekday_fullname,
- ccat.add_weekday_number,
- ccat.add_month,
- ccat.add_month_fullname,
- ccat.add_month_number,
- ccat.add_year,
- ccat.add_season,
- ccat.add_season_number,
- ccat.add_season_year,
- ccat.add_season_membership,
-)
-
-
-class TestCategorisations(tests.IrisTest):
- def setUp(self):
- # make a series of 'day numbers' for the time, that slide across month
- # boundaries
- day_numbers = np.arange(0, 600, 27, dtype=np.int32)
-
- cube = iris.cube.Cube(
- day_numbers, long_name="test cube", units="metres"
- )
-
- # use day numbers as data values also (don't actually use this for
- # anything)
- cube.data = day_numbers
-
- time_coord = iris.coords.DimCoord(
- day_numbers,
- standard_name="time",
- units=cf_units.Unit("days since epoch", "standard"),
- )
- cube.add_dim_coord(time_coord, 0)
-
- self.cube = cube
- self.time_coord = time_coord
-
- def test_bad_coord(self):
- for func in CATEGORISATION_FUNCS:
- kwargs = {"name": "my_category"}
- if func is ccat.add_season_membership:
- kwargs["season"] = "djf"
- with self.assertRaises(iris.exceptions.CoordinateNotFoundError):
- func(self.cube, "DOES NOT EXIST", **kwargs)
-
- def test_explicit_result_names(self):
- result_name = "my_category"
- fmt = "Missing/incorrectly named result for {0!r}"
- for func in CATEGORISATION_FUNCS:
- # Specify source coordinate by name
- cube = self.cube.copy()
- kwargs = {"name": result_name}
- if func is ccat.add_season_membership:
- kwargs["season"] = "djf"
- with warnings.catch_warnings(record=True):
- func(cube, "time", **kwargs)
- result_coords = cube.coords(result_name)
- self.assertEqual(len(result_coords), 1, fmt.format(func.__name__))
- # Specify source coordinate by coordinate reference
- cube = self.cube.copy()
- time = cube.coord("time")
- with warnings.catch_warnings(record=True):
- func(cube, time, **kwargs)
- result_coords = cube.coords(result_name)
- self.assertEqual(len(result_coords), 1, fmt.format(func.__name__))
-
- def test_basic(self):
- cube = self.cube
- time_coord = self.time_coord
-
- ccat.add_year(cube, time_coord, "my_year")
- ccat.add_day_of_month(cube, time_coord, "my_day_of_month")
- ccat.add_day_of_year(cube, time_coord, "my_day_of_year")
-
- ccat.add_month(cube, time_coord, "my_month")
- ccat.add_month_fullname(cube, time_coord, "my_month_fullname")
- ccat.add_month_number(cube, time_coord, "my_month_number")
-
- ccat.add_weekday(cube, time_coord, "my_weekday")
- ccat.add_weekday_number(cube, time_coord, "my_weekday_number")
- ccat.add_weekday_fullname(cube, time_coord, "my_weekday_fullname")
-
- ccat.add_season(cube, time_coord, "my_season")
- ccat.add_season_number(cube, time_coord, "my_season_number")
- ccat.add_season_year(cube, time_coord, "my_season_year")
-
- # also test 'generic' categorisation interface
- def _month_in_quarter(coord, pt_value):
- date = coord.units.num2date(pt_value)
- return (date.month - 1) % 3
-
- ccat.add_categorised_coord(
- cube, "my_month_in_quarter", time_coord, _month_in_quarter
- )
-
- # To ensure consistent results between 32-bit and 64-bit
- # platforms, ensure all the numeric categorisation coordinates
- # are always stored as int64.
- for coord in cube.coords():
- if coord.long_name is not None and coord.points.dtype.kind == "i":
- coord.points = coord.points.astype(np.int64)
-
- # check values
- self.assertCML(cube, ("categorisation", "quickcheck.cml"))
-
- def test_add_season_nonstandard(self):
- # season categorisations work for non-standard seasons?
- cube = self.cube
- time_coord = self.time_coord
- seasons = ["djfm", "amjj", "ason"]
- ccat.add_season(cube, time_coord, name="seasons", seasons=seasons)
- ccat.add_season_number(
- cube, time_coord, name="season_numbers", seasons=seasons
- )
- ccat.add_season_year(
- cube, time_coord, name="season_years", seasons=seasons
- )
- self.assertCML(cube, ("categorisation", "customcheck.cml"))
-
- def test_add_season_membership(self):
- # season membership identifies correct seasons?
- season = "djf"
- ccat.add_season_membership(self.cube, "time", season, name="in_season")
- ccat.add_season(self.cube, "time")
- coord_season = self.cube.coord("season")
- coord_membership = self.cube.coord("in_season")
- season_locations = np.where(coord_season.points == season)[0]
- membership_locations = np.where(coord_membership.points)[0]
- self.assertArrayEqual(membership_locations, season_locations)
-
- def test_add_season_invalid_spec(self):
- # custom seasons with an invalid season raises an error?
- seasons = ("djf", "maj", "jja", "son") # MAJ not a season!
- for func in (
- ccat.add_season,
- ccat.add_season_year,
- ccat.add_season_number,
- ):
- with self.assertRaises(ValueError):
- func(self.cube, "time", name="my_category", seasons=seasons)
-
- def test_add_season_repeated_months(self):
- # custom seasons with repeated months raises an error?
- seasons = ("djfm", "mam", "jja", "son")
- for func in (
- ccat.add_season,
- ccat.add_season_year,
- ccat.add_season_number,
- ):
- with self.assertRaises(ValueError):
- func(self.cube, "time", name="my_category", seasons=seasons)
-
- def test_add_season_missing_months(self):
- # custom seasons with missing months raises an error?
- seasons = ("djfm", "amjj")
- for func in (
- ccat.add_season,
- ccat.add_season_year,
- ccat.add_season_number,
- ):
- with self.assertRaises(ValueError):
- func(self.cube, "time", name="my_category", seasons=seasons)
-
- def test_add_season_membership_invalid_spec(self):
- season = "maj" # not a season!
- with self.assertRaises(ValueError):
- ccat.add_season_membership(
- self.cube, "time", season, name="maj_season"
- )
-
-
-if __name__ == "__main__":
- tests.main()
diff --git a/lib/iris/tests/test_coordsystem.py b/lib/iris/tests/test_coordsystem.py
index 2e5aef249c..e62a94f080 100644
--- a/lib/iris/tests/test_coordsystem.py
+++ b/lib/iris/tests/test_coordsystem.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
# import iris tests first so that some things can be initialised before importing anything else
import iris.tests as tests # isort:skip
diff --git a/lib/iris/tests/test_cube.py b/lib/iris/tests/test_cube.py
index c9b76539d2..d13db758a5 100644
--- a/lib/iris/tests/test_cube.py
+++ b/lib/iris/tests/test_cube.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
# import iris tests first so that some things can be initialised before
# importing anything else
diff --git a/lib/iris/tests/test_cube_to_pp.py b/lib/iris/tests/test_cube_to_pp.py
index a6fc5e3149..1a6be27f9c 100644
--- a/lib/iris/tests/test_cube_to_pp.py
+++ b/lib/iris/tests/test_cube_to_pp.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
# import iris tests first so that some things can be initialised before importing anything else
import iris.tests as tests # isort:skip
diff --git a/lib/iris/tests/test_ff.py b/lib/iris/tests/test_ff.py
index 95f3b1493b..1abfafdac1 100644
--- a/lib/iris/tests/test_ff.py
+++ b/lib/iris/tests/test_ff.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Test the Fieldsfile file loading plugin and FFHeader.
diff --git a/lib/iris/tests/test_file_load.py b/lib/iris/tests/test_file_load.py
index 0fe69ff583..d0b9b2461a 100644
--- a/lib/iris/tests/test_file_load.py
+++ b/lib/iris/tests/test_file_load.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Test the file loading mechanism.
diff --git a/lib/iris/tests/test_file_save.py b/lib/iris/tests/test_file_save.py
index 216637202a..dc901db715 100644
--- a/lib/iris/tests/test_file_save.py
+++ b/lib/iris/tests/test_file_save.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Test the file saving mechanism.
diff --git a/lib/iris/tests/test_hybrid.py b/lib/iris/tests/test_hybrid.py
index b070f36a7a..e3e5076650 100644
--- a/lib/iris/tests/test_hybrid.py
+++ b/lib/iris/tests/test_hybrid.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Test the hybrid vertical coordinate representations.
diff --git a/lib/iris/tests/test_image_json.py b/lib/iris/tests/test_image_json.py
index b5213156f8..75e40822dc 100644
--- a/lib/iris/tests/test_image_json.py
+++ b/lib/iris/tests/test_image_json.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
# import iris tests first so that some things can be initialised before
# importing anything else
diff --git a/lib/iris/tests/test_imports.py b/lib/iris/tests/test_imports.py
index ca0d262ec4..46c7cae723 100644
--- a/lib/iris/tests/test_imports.py
+++ b/lib/iris/tests/test_imports.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
# import iris tests first so that some things can be initialised before importing anything else
import iris.tests as tests # isort:skip
diff --git a/lib/iris/tests/test_intersect.py b/lib/iris/tests/test_intersect.py
index 01e9f79af5..29603f61a8 100644
--- a/lib/iris/tests/test_intersect.py
+++ b/lib/iris/tests/test_intersect.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Test the intersection of Coords
diff --git a/lib/iris/tests/test_io_init.py b/lib/iris/tests/test_io_init.py
index 82da82cfa9..852944eee5 100644
--- a/lib/iris/tests/test_io_init.py
+++ b/lib/iris/tests/test_io_init.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Test the io/__init__.py module.
diff --git a/lib/iris/tests/test_iterate.py b/lib/iris/tests/test_iterate.py
index 6317ef32b5..1bee6db74f 100644
--- a/lib/iris/tests/test_iterate.py
+++ b/lib/iris/tests/test_iterate.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Test the iteration of cubes in step.
diff --git a/lib/iris/tests/test_lazy_aggregate_by.py b/lib/iris/tests/test_lazy_aggregate_by.py
index 57b748e52f..690198c25a 100644
--- a/lib/iris/tests/test_lazy_aggregate_by.py
+++ b/lib/iris/tests/test_lazy_aggregate_by.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
import unittest
from iris._lazy_data import as_lazy_data
diff --git a/lib/iris/tests/test_load.py b/lib/iris/tests/test_load.py
index adb33924e5..1189f74b55 100644
--- a/lib/iris/tests/test_load.py
+++ b/lib/iris/tests/test_load.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Test the main loading API.
diff --git a/lib/iris/tests/test_mapping.py b/lib/iris/tests/test_mapping.py
index 202c319b61..6ea4571630 100644
--- a/lib/iris/tests/test_mapping.py
+++ b/lib/iris/tests/test_mapping.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Tests map creation.
diff --git a/lib/iris/tests/test_merge.py b/lib/iris/tests/test_merge.py
index e53bbfb5f3..054fd3a20b 100644
--- a/lib/iris/tests/test_merge.py
+++ b/lib/iris/tests/test_merge.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Test the cube merging mechanism.
diff --git a/lib/iris/tests/test_name.py b/lib/iris/tests/test_name.py
index b4e91bafd7..51bc92c28c 100644
--- a/lib/iris/tests/test_name.py
+++ b/lib/iris/tests/test_name.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Tests for NAME loading."""
# import iris tests first so that some things can be initialised before
diff --git a/lib/iris/tests/test_netcdf.py b/lib/iris/tests/test_netcdf.py
index 2e389942bf..793f8df876 100644
--- a/lib/iris/tests/test_netcdf.py
+++ b/lib/iris/tests/test_netcdf.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Test CF-NetCDF file loading and saving.
diff --git a/lib/iris/tests/test_nimrod.py b/lib/iris/tests/test_nimrod.py
index 6d62623198..ed60a516c8 100644
--- a/lib/iris/tests/test_nimrod.py
+++ b/lib/iris/tests/test_nimrod.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
# import iris tests first so that some things can be initialised before
# importing anything else
diff --git a/lib/iris/tests/test_peak.py b/lib/iris/tests/test_peak.py
index a2b6894149..1d9dd68cc1 100644
--- a/lib/iris/tests/test_peak.py
+++ b/lib/iris/tests/test_peak.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
# Import iris.tests first so that some things can be initialised before
# importing anything else.
diff --git a/lib/iris/tests/test_pickling.py b/lib/iris/tests/test_pickling.py
index 26247e795b..342b07cb03 100644
--- a/lib/iris/tests/test_pickling.py
+++ b/lib/iris/tests/test_pickling.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Test pickling of Iris objects.
diff --git a/lib/iris/tests/test_plot.py b/lib/iris/tests/test_plot.py
index 55c912f423..150d521e34 100644
--- a/lib/iris/tests/test_plot.py
+++ b/lib/iris/tests/test_plot.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
# import iris tests first so that some things can be initialised before
# importing anything else
diff --git a/lib/iris/tests/test_pp_cf.py b/lib/iris/tests/test_pp_cf.py
index 49bedaf1e2..44650919e1 100644
--- a/lib/iris/tests/test_pp_cf.py
+++ b/lib/iris/tests/test_pp_cf.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
# import iris tests first so that some things can be initialised before importing anything else
import iris.tests as tests # isort:skip
diff --git a/lib/iris/tests/test_pp_module.py b/lib/iris/tests/test_pp_module.py
index ca7f1c50eb..b8606e3120 100644
--- a/lib/iris/tests/test_pp_module.py
+++ b/lib/iris/tests/test_pp_module.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
# import iris tests first so that some things can be initialised before importing anything else
import iris.tests as tests # isort:skip
diff --git a/lib/iris/tests/test_pp_stash.py b/lib/iris/tests/test_pp_stash.py
index 42390ab2b3..733d1697de 100644
--- a/lib/iris/tests/test_pp_stash.py
+++ b/lib/iris/tests/test_pp_stash.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
# import iris tests first so that some things can be initialised before importing anything else
import iris.tests as tests # isort:skip
diff --git a/lib/iris/tests/test_pp_to_cube.py b/lib/iris/tests/test_pp_to_cube.py
index eb006fb88e..d9c47c7841 100644
--- a/lib/iris/tests/test_pp_to_cube.py
+++ b/lib/iris/tests/test_pp_to_cube.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
# import iris tests first so that some things can be initialised before importing anything else
import iris.tests as tests # isort:skip
diff --git a/lib/iris/tests/test_quickplot.py b/lib/iris/tests/test_quickplot.py
index df2db12de6..c42a8989fb 100644
--- a/lib/iris/tests/test_quickplot.py
+++ b/lib/iris/tests/test_quickplot.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Tests the high-level plotting interface.
diff --git a/lib/iris/tests/test_std_names.py b/lib/iris/tests/test_std_names.py
index 48d32acbee..bc50903ab6 100644
--- a/lib/iris/tests/test_std_names.py
+++ b/lib/iris/tests/test_std_names.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
# import iris tests first so that some things can be initialised before importing anything else
import iris.tests as tests # isort:skip
diff --git a/lib/iris/tests/test_uri_callback.py b/lib/iris/tests/test_uri_callback.py
index 67831945c5..62ae1b7fc8 100644
--- a/lib/iris/tests/test_uri_callback.py
+++ b/lib/iris/tests/test_uri_callback.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
# import iris tests first so that some things can be initialised before importing anything else
import iris.tests as tests # isort:skip
diff --git a/lib/iris/tests/test_util.py b/lib/iris/tests/test_util.py
index d8d5d73e95..cf1dc44755 100644
--- a/lib/iris/tests/test_util.py
+++ b/lib/iris/tests/test_util.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Test iris.util
diff --git a/lib/iris/tests/unit/__init__.py b/lib/iris/tests/unit/__init__.py
index 50929c8020..c03d437279 100644
--- a/lib/iris/tests/unit/__init__.py
+++ b/lib/iris/tests/unit/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris` package."""
diff --git a/lib/iris/tests/unit/analysis/__init__.py b/lib/iris/tests/unit/analysis/__init__.py
index 974b4e3584..4f957bd501 100644
--- a/lib/iris/tests/unit/analysis/__init__.py
+++ b/lib/iris/tests/unit/analysis/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris.analysis` package."""
diff --git a/lib/iris/tests/unit/analysis/area_weighted/__init__.py b/lib/iris/tests/unit/analysis/area_weighted/__init__.py
index 464036a6dd..2cccaec14c 100644
--- a/lib/iris/tests/unit/analysis/area_weighted/__init__.py
+++ b/lib/iris/tests/unit/analysis/area_weighted/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris.analysis._area_weighted` module."""
diff --git a/lib/iris/tests/unit/analysis/area_weighted/test_AreaWeightedRegridder.py b/lib/iris/tests/unit/analysis/area_weighted/test_AreaWeightedRegridder.py
index ecaa028ab3..2d873ad011 100644
--- a/lib/iris/tests/unit/analysis/area_weighted/test_AreaWeightedRegridder.py
+++ b/lib/iris/tests/unit/analysis/area_weighted/test_AreaWeightedRegridder.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for :class:`iris.analysis._area_weighted.AreaWeightedRegridder`.
diff --git a/lib/iris/tests/unit/analysis/cartography/__init__.py b/lib/iris/tests/unit/analysis/cartography/__init__.py
index 625a6fa141..ff3db13198 100644
--- a/lib/iris/tests/unit/analysis/cartography/__init__.py
+++ b/lib/iris/tests/unit/analysis/cartography/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris.analysis.cartography` module."""
diff --git a/lib/iris/tests/unit/analysis/cartography/test__get_lon_lat_coords.py b/lib/iris/tests/unit/analysis/cartography/test__get_lon_lat_coords.py
index 612e5d8ecf..23c7097902 100644
--- a/lib/iris/tests/unit/analysis/cartography/test__get_lon_lat_coords.py
+++ b/lib/iris/tests/unit/analysis/cartography/test__get_lon_lat_coords.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Test function :func:`iris.analysis.cartography._get_lon_lat_coords"""
import pytest
diff --git a/lib/iris/tests/unit/analysis/cartography/test__quadrant_area.py b/lib/iris/tests/unit/analysis/cartography/test__quadrant_area.py
index a44661292f..e5f6964e22 100644
--- a/lib/iris/tests/unit/analysis/cartography/test__quadrant_area.py
+++ b/lib/iris/tests/unit/analysis/cartography/test__quadrant_area.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.analysis.cartography._quadrant_area` function"""
diff --git a/lib/iris/tests/unit/analysis/cartography/test__xy_range.py b/lib/iris/tests/unit/analysis/cartography/test__xy_range.py
index 009c97fc34..eeafc533e4 100644
--- a/lib/iris/tests/unit/analysis/cartography/test__xy_range.py
+++ b/lib/iris/tests/unit/analysis/cartography/test__xy_range.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for :func:`iris.analysis.cartography._xy_range`"""
diff --git a/lib/iris/tests/unit/analysis/cartography/test_area_weights.py b/lib/iris/tests/unit/analysis/cartography/test_area_weights.py
index 696841ddd6..29c906f0d1 100644
--- a/lib/iris/tests/unit/analysis/cartography/test_area_weights.py
+++ b/lib/iris/tests/unit/analysis/cartography/test_area_weights.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.analysis.cartography.area_weights` function"""
diff --git a/lib/iris/tests/unit/analysis/cartography/test_gridcell_angles.py b/lib/iris/tests/unit/analysis/cartography/test_gridcell_angles.py
index 810851362e..f3f8c81583 100644
--- a/lib/iris/tests/unit/analysis/cartography/test_gridcell_angles.py
+++ b/lib/iris/tests/unit/analysis/cartography/test_gridcell_angles.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the function
:func:`iris.analysis.cartography.gridcell_angles`.
diff --git a/lib/iris/tests/unit/analysis/cartography/test_project.py b/lib/iris/tests/unit/analysis/cartography/test_project.py
index c00830aacc..7b52f4492e 100644
--- a/lib/iris/tests/unit/analysis/cartography/test_project.py
+++ b/lib/iris/tests/unit/analysis/cartography/test_project.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for :func:`iris.analysis.cartography.project`."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/analysis/cartography/test_rotate_grid_vectors.py b/lib/iris/tests/unit/analysis/cartography/test_rotate_grid_vectors.py
index f5c882a983..389dfaeb3a 100644
--- a/lib/iris/tests/unit/analysis/cartography/test_rotate_grid_vectors.py
+++ b/lib/iris/tests/unit/analysis/cartography/test_rotate_grid_vectors.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the function
:func:`iris.analysis.cartography.rotate_grid_vectors`.
diff --git a/lib/iris/tests/unit/analysis/cartography/test_rotate_winds.py b/lib/iris/tests/unit/analysis/cartography/test_rotate_winds.py
index 212a39bf2d..af1a2b8b42 100644
--- a/lib/iris/tests/unit/analysis/cartography/test_rotate_winds.py
+++ b/lib/iris/tests/unit/analysis/cartography/test_rotate_winds.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the function
:func:`iris.analysis.cartography.rotate_winds`.
diff --git a/lib/iris/tests/unit/analysis/geometry/__init__.py b/lib/iris/tests/unit/analysis/geometry/__init__.py
index c57f5e246a..25fa6af6cb 100644
--- a/lib/iris/tests/unit/analysis/geometry/__init__.py
+++ b/lib/iris/tests/unit/analysis/geometry/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris.analysis.geometry` module."""
diff --git a/lib/iris/tests/unit/analysis/geometry/test__extract_relevant_cube_slice.py b/lib/iris/tests/unit/analysis/geometry/test__extract_relevant_cube_slice.py
index 2509ac1a92..bec45d8b17 100644
--- a/lib/iris/tests/unit/analysis/geometry/test__extract_relevant_cube_slice.py
+++ b/lib/iris/tests/unit/analysis/geometry/test__extract_relevant_cube_slice.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for :func:`iris.analysis.geometry._extract_relevant_cube_slice`.
diff --git a/lib/iris/tests/unit/analysis/geometry/test_geometry_area_weights.py b/lib/iris/tests/unit/analysis/geometry/test_geometry_area_weights.py
index 62ab1ae283..ae0e47292d 100644
--- a/lib/iris/tests/unit/analysis/geometry/test_geometry_area_weights.py
+++ b/lib/iris/tests/unit/analysis/geometry/test_geometry_area_weights.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the :func:`iris.analysis.geometry.geometry_area_weights`
function.
diff --git a/lib/iris/tests/unit/analysis/interpolation/__init__.py b/lib/iris/tests/unit/analysis/interpolation/__init__.py
index 3825dacda3..01208c1aba 100644
--- a/lib/iris/tests/unit/analysis/interpolation/__init__.py
+++ b/lib/iris/tests/unit/analysis/interpolation/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris.analysis._interpolation` package."""
diff --git a/lib/iris/tests/unit/analysis/interpolation/test_RectilinearInterpolator.py b/lib/iris/tests/unit/analysis/interpolation/test_RectilinearInterpolator.py
index a91a08dcb8..574a25ee7d 100644
--- a/lib/iris/tests/unit/analysis/interpolation/test_RectilinearInterpolator.py
+++ b/lib/iris/tests/unit/analysis/interpolation/test_RectilinearInterpolator.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for :class:`iris.analysis._interpolation.RectilinearInterpolator`.
diff --git a/lib/iris/tests/unit/analysis/interpolation/test_get_xy_dim_coords.py b/lib/iris/tests/unit/analysis/interpolation/test_get_xy_dim_coords.py
index 54e54bc304..26bc32c69f 100644
--- a/lib/iris/tests/unit/analysis/interpolation/test_get_xy_dim_coords.py
+++ b/lib/iris/tests/unit/analysis/interpolation/test_get_xy_dim_coords.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for :func:`iris.analysis._interpolation.get_xy_dim_coords`.
diff --git a/lib/iris/tests/unit/analysis/maths/__init__.py b/lib/iris/tests/unit/analysis/maths/__init__.py
index c259bdeff6..c77f8ede37 100644
--- a/lib/iris/tests/unit/analysis/maths/__init__.py
+++ b/lib/iris/tests/unit/analysis/maths/__init__.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris.analysis.maths` module."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/analysis/maths/test__arith__dask_array.py b/lib/iris/tests/unit/analysis/maths/test__arith__dask_array.py
index 11664af115..17c0aeac15 100644
--- a/lib/iris/tests/unit/analysis/maths/test__arith__dask_array.py
+++ b/lib/iris/tests/unit/analysis/maths/test__arith__dask_array.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for cube arithmetic with dask arrays."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/analysis/maths/test__arith__derived_coords.py b/lib/iris/tests/unit/analysis/maths/test__arith__derived_coords.py
index 57e012e1c9..85d1c363e6 100644
--- a/lib/iris/tests/unit/analysis/maths/test__arith__derived_coords.py
+++ b/lib/iris/tests/unit/analysis/maths/test__arith__derived_coords.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for cube arithmetic involving derived (i.e. factory) coords."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/analysis/maths/test__arith__meshcoords.py b/lib/iris/tests/unit/analysis/maths/test__arith__meshcoords.py
index e1255ef9d8..c55d19f000 100644
--- a/lib/iris/tests/unit/analysis/maths/test__arith__meshcoords.py
+++ b/lib/iris/tests/unit/analysis/maths/test__arith__meshcoords.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for cube arithmetic involving MeshCoords."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/analysis/maths/test__get_dtype.py b/lib/iris/tests/unit/analysis/maths/test__get_dtype.py
index 220b728b32..81cfdee3fb 100644
--- a/lib/iris/tests/unit/analysis/maths/test__get_dtype.py
+++ b/lib/iris/tests/unit/analysis/maths/test__get_dtype.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the function :func:`iris.analysis.maths._get_dtype`.
diff --git a/lib/iris/tests/unit/analysis/maths/test__inplace_common_checks.py b/lib/iris/tests/unit/analysis/maths/test__inplace_common_checks.py
index bd81a96fbd..2c97737973 100644
--- a/lib/iris/tests/unit/analysis/maths/test__inplace_common_checks.py
+++ b/lib/iris/tests/unit/analysis/maths/test__inplace_common_checks.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the function :func:`iris.analysis.maths._inplace_common_checks`.
diff --git a/lib/iris/tests/unit/analysis/maths/test__output_dtype.py b/lib/iris/tests/unit/analysis/maths/test__output_dtype.py
index c422e366be..3f69118e0f 100644
--- a/lib/iris/tests/unit/analysis/maths/test__output_dtype.py
+++ b/lib/iris/tests/unit/analysis/maths/test__output_dtype.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the function :func:`iris.analysis.maths._output_dtype`.
diff --git a/lib/iris/tests/unit/analysis/maths/test_add.py b/lib/iris/tests/unit/analysis/maths/test_add.py
index 1ca7f7c244..69078b9a96 100644
--- a/lib/iris/tests/unit/analysis/maths/test_add.py
+++ b/lib/iris/tests/unit/analysis/maths/test_add.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :func:`iris.analysis.maths.add` function."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/analysis/maths/test_divide.py b/lib/iris/tests/unit/analysis/maths/test_divide.py
index 4bd202e037..17e5105126 100644
--- a/lib/iris/tests/unit/analysis/maths/test_divide.py
+++ b/lib/iris/tests/unit/analysis/maths/test_divide.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :func:`iris.analysis.maths.divide` function."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/analysis/maths/test_multiply.py b/lib/iris/tests/unit/analysis/maths/test_multiply.py
index 266342605a..945a86a4d1 100644
--- a/lib/iris/tests/unit/analysis/maths/test_multiply.py
+++ b/lib/iris/tests/unit/analysis/maths/test_multiply.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :func:`iris.analysis.maths.multiply` function."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/analysis/maths/test_subtract.py b/lib/iris/tests/unit/analysis/maths/test_subtract.py
index f7a9df34d0..6812176412 100644
--- a/lib/iris/tests/unit/analysis/maths/test_subtract.py
+++ b/lib/iris/tests/unit/analysis/maths/test_subtract.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :func:`iris.analysis.maths.subtract` function."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/analysis/regrid/__init__.py b/lib/iris/tests/unit/analysis/regrid/__init__.py
index a0a0fd0a6b..c4e5c119ea 100644
--- a/lib/iris/tests/unit/analysis/regrid/__init__.py
+++ b/lib/iris/tests/unit/analysis/regrid/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris.analysis._regrid` module."""
diff --git a/lib/iris/tests/unit/analysis/regrid/test_RectilinearRegridder.py b/lib/iris/tests/unit/analysis/regrid/test_RectilinearRegridder.py
index a018507fb3..4855b92332 100644
--- a/lib/iris/tests/unit/analysis/regrid/test_RectilinearRegridder.py
+++ b/lib/iris/tests/unit/analysis/regrid/test_RectilinearRegridder.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for :class:`iris.analysis._regrid.RectilinearRegridder`."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/analysis/regrid/test__CurvilinearRegridder.py b/lib/iris/tests/unit/analysis/regrid/test__CurvilinearRegridder.py
index 9b0160aee4..16639c1649 100644
--- a/lib/iris/tests/unit/analysis/regrid/test__CurvilinearRegridder.py
+++ b/lib/iris/tests/unit/analysis/regrid/test__CurvilinearRegridder.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for :class:`iris.analysis._regrid.CurvilinearRegridder`."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/analysis/scipy_interpolate/__init__.py b/lib/iris/tests/unit/analysis/scipy_interpolate/__init__.py
index 67218194c2..cd80f89470 100644
--- a/lib/iris/tests/unit/analysis/scipy_interpolate/__init__.py
+++ b/lib/iris/tests/unit/analysis/scipy_interpolate/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris.analysis.scipy_interpolate` module."""
diff --git a/lib/iris/tests/unit/analysis/scipy_interpolate/test__RegularGridInterpolator.py b/lib/iris/tests/unit/analysis/scipy_interpolate/test__RegularGridInterpolator.py
index f0aa027baa..9bf9621fb4 100644
--- a/lib/iris/tests/unit/analysis/scipy_interpolate/test__RegularGridInterpolator.py
+++ b/lib/iris/tests/unit/analysis/scipy_interpolate/test__RegularGridInterpolator.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the
:func:`iris.analysis._scipy_interpolate._RegularGridInterpolator` class."""
diff --git a/lib/iris/tests/unit/analysis/stats/__init__.py b/lib/iris/tests/unit/analysis/stats/__init__.py
index 0b896d648d..8787858158 100644
--- a/lib/iris/tests/unit/analysis/stats/__init__.py
+++ b/lib/iris/tests/unit/analysis/stats/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris.analysis.stats` module."""
diff --git a/lib/iris/tests/unit/analysis/stats/test_pearsonr.py b/lib/iris/tests/unit/analysis/stats/test_pearsonr.py
index 63cf4e2abe..648aeb8a64 100644
--- a/lib/iris/tests/unit/analysis/stats/test_pearsonr.py
+++ b/lib/iris/tests/unit/analysis/stats/test_pearsonr.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.analysis.stats.pearsonr` function."""
# Import iris tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/analysis/test_Aggregator.py b/lib/iris/tests/unit/analysis/test_Aggregator.py
index 45081ad07f..a7029d7d33 100644
--- a/lib/iris/tests/unit/analysis/test_Aggregator.py
+++ b/lib/iris/tests/unit/analysis/test_Aggregator.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :class:`iris.analysis.Aggregator` class instance."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/analysis/test_AreaWeighted.py b/lib/iris/tests/unit/analysis/test_AreaWeighted.py
index 2454e0817c..1e16e4bcb2 100644
--- a/lib/iris/tests/unit/analysis/test_AreaWeighted.py
+++ b/lib/iris/tests/unit/analysis/test_AreaWeighted.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for :class:`iris.analysis.AreaWeighted`."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/analysis/test_COUNT.py b/lib/iris/tests/unit/analysis/test_COUNT.py
index 96274f7cd0..fa51565474 100644
--- a/lib/iris/tests/unit/analysis/test_COUNT.py
+++ b/lib/iris/tests/unit/analysis/test_COUNT.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :data:`iris.analysis.COUNT` aggregator."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/analysis/test_Linear.py b/lib/iris/tests/unit/analysis/test_Linear.py
index 27565f8c51..e98a6f585e 100644
--- a/lib/iris/tests/unit/analysis/test_Linear.py
+++ b/lib/iris/tests/unit/analysis/test_Linear.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for :class:`iris.analysis.Linear`."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/analysis/test_MAX.py b/lib/iris/tests/unit/analysis/test_MAX.py
index 91d4daf1f0..8753c5e660 100644
--- a/lib/iris/tests/unit/analysis/test_MAX.py
+++ b/lib/iris/tests/unit/analysis/test_MAX.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :data:`iris.analysis.MAX` aggregator."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/analysis/test_MAX_RUN.py b/lib/iris/tests/unit/analysis/test_MAX_RUN.py
index 00de383f7a..13a940f6fa 100755
--- a/lib/iris/tests/unit/analysis/test_MAX_RUN.py
+++ b/lib/iris/tests/unit/analysis/test_MAX_RUN.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :data:`iris.analysis.MAX_RUN` aggregator."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/analysis/test_MEAN.py b/lib/iris/tests/unit/analysis/test_MEAN.py
index 18e2b4ca6c..9b8ccc1aa7 100644
--- a/lib/iris/tests/unit/analysis/test_MEAN.py
+++ b/lib/iris/tests/unit/analysis/test_MEAN.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :data:`iris.analysis.MEAN` aggregator."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/analysis/test_MIN.py b/lib/iris/tests/unit/analysis/test_MIN.py
index f12790f0f1..06757517d3 100644
--- a/lib/iris/tests/unit/analysis/test_MIN.py
+++ b/lib/iris/tests/unit/analysis/test_MIN.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :data:`iris.analysis.MIN` aggregator."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/analysis/test_Nearest.py b/lib/iris/tests/unit/analysis/test_Nearest.py
index f3736d2cf3..053fca1907 100644
--- a/lib/iris/tests/unit/analysis/test_Nearest.py
+++ b/lib/iris/tests/unit/analysis/test_Nearest.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for :class:`iris.analysis.Nearest`."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/analysis/test_PERCENTILE.py b/lib/iris/tests/unit/analysis/test_PERCENTILE.py
index a29516c604..d841619ccc 100644
--- a/lib/iris/tests/unit/analysis/test_PERCENTILE.py
+++ b/lib/iris/tests/unit/analysis/test_PERCENTILE.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :data:`iris.analysis.PERCENTILE` aggregator."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/analysis/test_PROPORTION.py b/lib/iris/tests/unit/analysis/test_PROPORTION.py
index b7118241af..dc890463ae 100644
--- a/lib/iris/tests/unit/analysis/test_PROPORTION.py
+++ b/lib/iris/tests/unit/analysis/test_PROPORTION.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :data:`iris.analysis.PROPORTION` aggregator."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/analysis/test_PercentileAggregator.py b/lib/iris/tests/unit/analysis/test_PercentileAggregator.py
index f11cd7a8d3..0137a50019 100644
--- a/lib/iris/tests/unit/analysis/test_PercentileAggregator.py
+++ b/lib/iris/tests/unit/analysis/test_PercentileAggregator.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the :class:`iris.analysis.PercentileAggregator` class instance.
diff --git a/lib/iris/tests/unit/analysis/test_PointInCell.py b/lib/iris/tests/unit/analysis/test_PointInCell.py
index 2570465245..83453c26d1 100644
--- a/lib/iris/tests/unit/analysis/test_PointInCell.py
+++ b/lib/iris/tests/unit/analysis/test_PointInCell.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for :class:`iris.analysis.PointInCell`."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/analysis/test_RMS.py b/lib/iris/tests/unit/analysis/test_RMS.py
index 74f309ce00..f5da089a9c 100644
--- a/lib/iris/tests/unit/analysis/test_RMS.py
+++ b/lib/iris/tests/unit/analysis/test_RMS.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :data:`iris.analysis.RMS` aggregator."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/analysis/test_STD_DEV.py b/lib/iris/tests/unit/analysis/test_STD_DEV.py
index 978bdb4ddf..0abf4f9dc3 100644
--- a/lib/iris/tests/unit/analysis/test_STD_DEV.py
+++ b/lib/iris/tests/unit/analysis/test_STD_DEV.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :data:`iris.analysis.STD_DEV` aggregator."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/analysis/test_SUM.py b/lib/iris/tests/unit/analysis/test_SUM.py
index 64699b442f..90be890797 100644
--- a/lib/iris/tests/unit/analysis/test_SUM.py
+++ b/lib/iris/tests/unit/analysis/test_SUM.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :data:`iris.analysis.SUM` aggregator."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/analysis/test_VARIANCE.py b/lib/iris/tests/unit/analysis/test_VARIANCE.py
index 857bc7e1d2..e4dde970a9 100644
--- a/lib/iris/tests/unit/analysis/test_VARIANCE.py
+++ b/lib/iris/tests/unit/analysis/test_VARIANCE.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :data:`iris.analysis.VARIANCE` aggregator."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/analysis/test_WPERCENTILE.py b/lib/iris/tests/unit/analysis/test_WPERCENTILE.py
index a59bf4ce9c..c8bcf5018e 100644
--- a/lib/iris/tests/unit/analysis/test_WPERCENTILE.py
+++ b/lib/iris/tests/unit/analysis/test_WPERCENTILE.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :data:`iris.analysis.PERCENTILE` aggregator."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/analysis/test_WeightedPercentileAggregator.py b/lib/iris/tests/unit/analysis/test_WeightedPercentileAggregator.py
index 0cd808d1c7..a1306063b6 100644
--- a/lib/iris/tests/unit/analysis/test_WeightedPercentileAggregator.py
+++ b/lib/iris/tests/unit/analysis/test_WeightedPercentileAggregator.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the :class:`iris.analysis.PercentileAggregator` class instance.
diff --git a/lib/iris/tests/unit/analysis/test__axis_to_single_trailing.py b/lib/iris/tests/unit/analysis/test__axis_to_single_trailing.py
index 505a00df78..f4cb94f466 100644
--- a/lib/iris/tests/unit/analysis/test__axis_to_single_trailing.py
+++ b/lib/iris/tests/unit/analysis/test__axis_to_single_trailing.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :data:`iris.analysis._axis_to_single_trailing` function."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/analysis/trajectory/__init__.py b/lib/iris/tests/unit/analysis/trajectory/__init__.py
index 55d3ebd8bc..8033fd8c30 100644
--- a/lib/iris/tests/unit/analysis/trajectory/__init__.py
+++ b/lib/iris/tests/unit/analysis/trajectory/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris.analysis.trajectory` module."""
diff --git a/lib/iris/tests/unit/analysis/trajectory/test_Trajectory.py b/lib/iris/tests/unit/analysis/trajectory/test_Trajectory.py
index 32c41b78db..c8971a897e 100644
--- a/lib/iris/tests/unit/analysis/trajectory/test_Trajectory.py
+++ b/lib/iris/tests/unit/analysis/trajectory/test_Trajectory.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for :class:`iris.analysis.trajectory.Trajectory`.
diff --git a/lib/iris/tests/unit/analysis/trajectory/test_UnstructuredNearestNeighbourRegridder.py b/lib/iris/tests/unit/analysis/trajectory/test_UnstructuredNearestNeighbourRegridder.py
index a652ceb72e..f70c3e7518 100644
--- a/lib/iris/tests/unit/analysis/trajectory/test_UnstructuredNearestNeighbourRegridder.py
+++ b/lib/iris/tests/unit/analysis/trajectory/test_UnstructuredNearestNeighbourRegridder.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for
:class:`iris.analysis.trajectory.UnstructuredNearestNeigbourRegridder`.
diff --git a/lib/iris/tests/unit/analysis/trajectory/test__nearest_neighbour_indices_ndcoords.py b/lib/iris/tests/unit/analysis/trajectory/test__nearest_neighbour_indices_ndcoords.py
index 8b9e4cafa4..d30feecadd 100644
--- a/lib/iris/tests/unit/analysis/trajectory/test__nearest_neighbour_indices_ndcoords.py
+++ b/lib/iris/tests/unit/analysis/trajectory/test__nearest_neighbour_indices_ndcoords.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for
:meth:`iris.analysis.trajectory._nearest_neighbour_indices_ndcoords`.
diff --git a/lib/iris/tests/unit/analysis/trajectory/test_interpolate.py b/lib/iris/tests/unit/analysis/trajectory/test_interpolate.py
index f1b9711068..c156354f8f 100644
--- a/lib/iris/tests/unit/analysis/trajectory/test_interpolate.py
+++ b/lib/iris/tests/unit/analysis/trajectory/test_interpolate.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for :meth:`iris.analysis.trajectory.interpolate`.
diff --git a/lib/iris/tests/unit/aux_factory/__init__.py b/lib/iris/tests/unit/aux_factory/__init__.py
index 00b9f1a3bd..621625e9da 100644
--- a/lib/iris/tests/unit/aux_factory/__init__.py
+++ b/lib/iris/tests/unit/aux_factory/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris.aux_factory` module."""
diff --git a/lib/iris/tests/unit/aux_factory/test_AtmosphereSigmaFactory.py b/lib/iris/tests/unit/aux_factory/test_AtmosphereSigmaFactory.py
index 6e417a3b38..88da4ca463 100644
--- a/lib/iris/tests/unit/aux_factory/test_AtmosphereSigmaFactory.py
+++ b/lib/iris/tests/unit/aux_factory/test_AtmosphereSigmaFactory.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the
`iris.aux_factory.AtmosphereSigmaFactory` class.
diff --git a/lib/iris/tests/unit/aux_factory/test_AuxCoordFactory.py b/lib/iris/tests/unit/aux_factory/test_AuxCoordFactory.py
index f8bd54093f..619a0482b6 100644
--- a/lib/iris/tests/unit/aux_factory/test_AuxCoordFactory.py
+++ b/lib/iris/tests/unit/aux_factory/test_AuxCoordFactory.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for `iris.aux_factory.AuxCoordFactory`.
diff --git a/lib/iris/tests/unit/aux_factory/test_HybridPressureFactory.py b/lib/iris/tests/unit/aux_factory/test_HybridPressureFactory.py
index 48fead3aa5..31f791f10e 100644
--- a/lib/iris/tests/unit/aux_factory/test_HybridPressureFactory.py
+++ b/lib/iris/tests/unit/aux_factory/test_HybridPressureFactory.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the
`iris.aux_factory.HybridPressureFactory` class.
diff --git a/lib/iris/tests/unit/aux_factory/test_OceanSFactory.py b/lib/iris/tests/unit/aux_factory/test_OceanSFactory.py
index f588c9f001..4bd85d1e3b 100644
--- a/lib/iris/tests/unit/aux_factory/test_OceanSFactory.py
+++ b/lib/iris/tests/unit/aux_factory/test_OceanSFactory.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the
`iris.aux_factory.OceanSFactory` class.
diff --git a/lib/iris/tests/unit/aux_factory/test_OceanSg1Factory.py b/lib/iris/tests/unit/aux_factory/test_OceanSg1Factory.py
index 7a2f4c631c..349b4cfcb6 100644
--- a/lib/iris/tests/unit/aux_factory/test_OceanSg1Factory.py
+++ b/lib/iris/tests/unit/aux_factory/test_OceanSg1Factory.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the
`iris.aux_factory.OceanSg1Factory` class.
diff --git a/lib/iris/tests/unit/aux_factory/test_OceanSg2Factory.py b/lib/iris/tests/unit/aux_factory/test_OceanSg2Factory.py
index 4d1f268a1e..3304cf121d 100644
--- a/lib/iris/tests/unit/aux_factory/test_OceanSg2Factory.py
+++ b/lib/iris/tests/unit/aux_factory/test_OceanSg2Factory.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the
`iris.aux_factory.OceanSg2Factory` class.
diff --git a/lib/iris/tests/unit/aux_factory/test_OceanSigmaFactory.py b/lib/iris/tests/unit/aux_factory/test_OceanSigmaFactory.py
index 30d9647952..a03afa661d 100644
--- a/lib/iris/tests/unit/aux_factory/test_OceanSigmaFactory.py
+++ b/lib/iris/tests/unit/aux_factory/test_OceanSigmaFactory.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the
`iris.aux_factory.OceanSigmaFactory` class.
diff --git a/lib/iris/tests/unit/aux_factory/test_OceanSigmaZFactory.py b/lib/iris/tests/unit/aux_factory/test_OceanSigmaZFactory.py
index 736a883846..a191fac978 100644
--- a/lib/iris/tests/unit/aux_factory/test_OceanSigmaZFactory.py
+++ b/lib/iris/tests/unit/aux_factory/test_OceanSigmaZFactory.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the
`iris.aux_factory.OceanSigmaZFactory` class.
diff --git a/lib/iris/tests/unit/common/__init__.py b/lib/iris/tests/unit/common/__init__.py
index 5380785042..60d8548652 100644
--- a/lib/iris/tests/unit/common/__init__.py
+++ b/lib/iris/tests/unit/common/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris.common` module."""
diff --git a/lib/iris/tests/unit/common/lenient/__init__.py b/lib/iris/tests/unit/common/lenient/__init__.py
index 2a99e7a4c2..e927f5f3ac 100644
--- a/lib/iris/tests/unit/common/lenient/__init__.py
+++ b/lib/iris/tests/unit/common/lenient/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris.common.lenient` package."""
diff --git a/lib/iris/tests/unit/common/lenient/test_Lenient.py b/lib/iris/tests/unit/common/lenient/test_Lenient.py
index 62e2b24891..6bcf366a25 100644
--- a/lib/iris/tests/unit/common/lenient/test_Lenient.py
+++ b/lib/iris/tests/unit/common/lenient/test_Lenient.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the :class:`iris.common.lenient.Lenient`.
diff --git a/lib/iris/tests/unit/common/lenient/test__Lenient.py b/lib/iris/tests/unit/common/lenient/test__Lenient.py
index 44f38d9c5a..9bff110942 100644
--- a/lib/iris/tests/unit/common/lenient/test__Lenient.py
+++ b/lib/iris/tests/unit/common/lenient/test__Lenient.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the :class:`iris.common.lenient._Lenient`.
diff --git a/lib/iris/tests/unit/common/lenient/test__lenient_client.py b/lib/iris/tests/unit/common/lenient/test__lenient_client.py
index 3a19563efc..b604e49608 100644
--- a/lib/iris/tests/unit/common/lenient/test__lenient_client.py
+++ b/lib/iris/tests/unit/common/lenient/test__lenient_client.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the :func:`iris.common.lenient._lenient_client`.
diff --git a/lib/iris/tests/unit/common/lenient/test__lenient_service.py b/lib/iris/tests/unit/common/lenient/test__lenient_service.py
index 9545b137ea..f6bafde5e7 100644
--- a/lib/iris/tests/unit/common/lenient/test__lenient_service.py
+++ b/lib/iris/tests/unit/common/lenient/test__lenient_service.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the :func:`iris.common.lenient._lenient_service`.
diff --git a/lib/iris/tests/unit/common/lenient/test__qualname.py b/lib/iris/tests/unit/common/lenient/test__qualname.py
index 3deefbf30d..6e2eb23bc6 100644
--- a/lib/iris/tests/unit/common/lenient/test__qualname.py
+++ b/lib/iris/tests/unit/common/lenient/test__qualname.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the :func:`iris.common.lenient._qualname`.
diff --git a/lib/iris/tests/unit/common/metadata/__init__.py b/lib/iris/tests/unit/common/metadata/__init__.py
index aba33c8312..973234fb21 100644
--- a/lib/iris/tests/unit/common/metadata/__init__.py
+++ b/lib/iris/tests/unit/common/metadata/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris.common.metadata` package."""
diff --git a/lib/iris/tests/unit/common/metadata/test_AncillaryVariableMetadata.py b/lib/iris/tests/unit/common/metadata/test_AncillaryVariableMetadata.py
index 9efb43ec42..196ab48d20 100644
--- a/lib/iris/tests/unit/common/metadata/test_AncillaryVariableMetadata.py
+++ b/lib/iris/tests/unit/common/metadata/test_AncillaryVariableMetadata.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the :class:`iris.common.metadata.AncillaryVariableMetadata`.
diff --git a/lib/iris/tests/unit/common/metadata/test_BaseMetadata.py b/lib/iris/tests/unit/common/metadata/test_BaseMetadata.py
index f4760b3051..e7434922cf 100644
--- a/lib/iris/tests/unit/common/metadata/test_BaseMetadata.py
+++ b/lib/iris/tests/unit/common/metadata/test_BaseMetadata.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the :class:`iris.common.metadata.BaseMetadata`.
diff --git a/lib/iris/tests/unit/common/metadata/test_CellMeasureMetadata.py b/lib/iris/tests/unit/common/metadata/test_CellMeasureMetadata.py
index a434651206..25b287909d 100644
--- a/lib/iris/tests/unit/common/metadata/test_CellMeasureMetadata.py
+++ b/lib/iris/tests/unit/common/metadata/test_CellMeasureMetadata.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the :class:`iris.common.metadata.CellMeasureMetadata`.
diff --git a/lib/iris/tests/unit/common/metadata/test_CoordMetadata.py b/lib/iris/tests/unit/common/metadata/test_CoordMetadata.py
index e3b7486012..dac1f26f35 100644
--- a/lib/iris/tests/unit/common/metadata/test_CoordMetadata.py
+++ b/lib/iris/tests/unit/common/metadata/test_CoordMetadata.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the :class:`iris.common.metadata.CoordMetadata`.
diff --git a/lib/iris/tests/unit/common/metadata/test_CubeMetadata.py b/lib/iris/tests/unit/common/metadata/test_CubeMetadata.py
index 848431565b..382607dca5 100644
--- a/lib/iris/tests/unit/common/metadata/test_CubeMetadata.py
+++ b/lib/iris/tests/unit/common/metadata/test_CubeMetadata.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the :class:`iris.common.metadata.CubeMetadata`.
diff --git a/lib/iris/tests/unit/common/metadata/test__NamedTupleMeta.py b/lib/iris/tests/unit/common/metadata/test__NamedTupleMeta.py
index 155c4f99b8..1608b1c42e 100644
--- a/lib/iris/tests/unit/common/metadata/test__NamedTupleMeta.py
+++ b/lib/iris/tests/unit/common/metadata/test__NamedTupleMeta.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the :class:`iris.common.metadata._NamedTupleMeta`.
diff --git a/lib/iris/tests/unit/common/metadata/test_hexdigest.py b/lib/iris/tests/unit/common/metadata/test_hexdigest.py
index 949002af89..9a16d9252b 100644
--- a/lib/iris/tests/unit/common/metadata/test_hexdigest.py
+++ b/lib/iris/tests/unit/common/metadata/test_hexdigest.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the :func:`iris.common.metadata.hexdigest`.
diff --git a/lib/iris/tests/unit/common/metadata/test_metadata_filter.py b/lib/iris/tests/unit/common/metadata/test_metadata_filter.py
index 9c5987f235..340b6a5355 100644
--- a/lib/iris/tests/unit/common/metadata/test_metadata_filter.py
+++ b/lib/iris/tests/unit/common/metadata/test_metadata_filter.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the :func:`iris.common.metadata_filter`.
diff --git a/lib/iris/tests/unit/common/metadata/test_metadata_manager_factory.py b/lib/iris/tests/unit/common/metadata/test_metadata_manager_factory.py
index cbb29b7161..1bf342004d 100644
--- a/lib/iris/tests/unit/common/metadata/test_metadata_manager_factory.py
+++ b/lib/iris/tests/unit/common/metadata/test_metadata_manager_factory.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the :func:`iris.common.metadata.metadata_manager_factory`.
diff --git a/lib/iris/tests/unit/common/mixin/__init__.py b/lib/iris/tests/unit/common/mixin/__init__.py
index 493e140626..3c1f5bbc9d 100644
--- a/lib/iris/tests/unit/common/mixin/__init__.py
+++ b/lib/iris/tests/unit/common/mixin/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris.common.mixin` package."""
diff --git a/lib/iris/tests/unit/common/mixin/test_CFVariableMixin.py b/lib/iris/tests/unit/common/mixin/test_CFVariableMixin.py
index 88a88be567..55d2ca5d79 100644
--- a/lib/iris/tests/unit/common/mixin/test_CFVariableMixin.py
+++ b/lib/iris/tests/unit/common/mixin/test_CFVariableMixin.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the :class:`iris.common.mixin.CFVariableMixin`.
diff --git a/lib/iris/tests/unit/common/mixin/test_LimitedAttributeDict.py b/lib/iris/tests/unit/common/mixin/test_LimitedAttributeDict.py
index 32c78b6697..7416bb9da5 100644
--- a/lib/iris/tests/unit/common/mixin/test_LimitedAttributeDict.py
+++ b/lib/iris/tests/unit/common/mixin/test_LimitedAttributeDict.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the :class:`iris.common.mixin.LimitedAttributeDict`.
diff --git a/lib/iris/tests/unit/common/mixin/test__get_valid_standard_name.py b/lib/iris/tests/unit/common/mixin/test__get_valid_standard_name.py
index 8fc21f2965..634eae4cf3 100644
--- a/lib/iris/tests/unit/common/mixin/test__get_valid_standard_name.py
+++ b/lib/iris/tests/unit/common/mixin/test__get_valid_standard_name.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the :func:`iris.common.mixin._get_valid_standard_name`.
diff --git a/lib/iris/tests/unit/common/resolve/__init__.py b/lib/iris/tests/unit/common/resolve/__init__.py
index d0b189e59d..8bfbe20970 100644
--- a/lib/iris/tests/unit/common/resolve/__init__.py
+++ b/lib/iris/tests/unit/common/resolve/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris.common.resolve` package."""
diff --git a/lib/iris/tests/unit/common/resolve/test_Resolve.py b/lib/iris/tests/unit/common/resolve/test_Resolve.py
index db1759c5fc..182cbbd61c 100644
--- a/lib/iris/tests/unit/common/resolve/test_Resolve.py
+++ b/lib/iris/tests/unit/common/resolve/test_Resolve.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the :class:`iris.common.resolve.Resolve`.
diff --git a/lib/iris/tests/unit/concatenate/__init__.py b/lib/iris/tests/unit/concatenate/__init__.py
index 229476f3a6..6deaf26aa0 100644
--- a/lib/iris/tests/unit/concatenate/__init__.py
+++ b/lib/iris/tests/unit/concatenate/__init__.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit-test infrastructure for the :mod:`iris._concatenate` package."""
from __future__ import annotations
diff --git a/lib/iris/tests/unit/concatenate/test__CoordMetaData.py b/lib/iris/tests/unit/concatenate/test__CoordMetaData.py
index 6f29e1f65f..35c3cfd17b 100644
--- a/lib/iris/tests/unit/concatenate/test__CoordMetaData.py
+++ b/lib/iris/tests/unit/concatenate/test__CoordMetaData.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit-tests for :class:`iris._concatenate._CoordMetaData`."""
from __future__ import annotations
diff --git a/lib/iris/tests/unit/concatenate/test__CoordSignature.py b/lib/iris/tests/unit/concatenate/test__CoordSignature.py
index eb62c5ec64..c5e4850170 100644
--- a/lib/iris/tests/unit/concatenate/test__CoordSignature.py
+++ b/lib/iris/tests/unit/concatenate/test__CoordSignature.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit-tests for :class:`iris._concatenate._CoordSignature`."""
from __future__ import annotations
diff --git a/lib/iris/tests/unit/concatenate/test__CubeSignature.py b/lib/iris/tests/unit/concatenate/test__CubeSignature.py
index cc20cdfa1f..64a25a2fad 100644
--- a/lib/iris/tests/unit/concatenate/test__CubeSignature.py
+++ b/lib/iris/tests/unit/concatenate/test__CubeSignature.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Test class :class:`iris._concatenate._CubeSignature`."""
# import iris tests first so that some things can be initialised
diff --git a/lib/iris/tests/unit/concatenate/test_concatenate.py b/lib/iris/tests/unit/concatenate/test_concatenate.py
index c2ca01f781..96932e11d4 100644
--- a/lib/iris/tests/unit/concatenate/test_concatenate.py
+++ b/lib/iris/tests/unit/concatenate/test_concatenate.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Test function :func:`iris._concatenate.concatenate.py`."""
# import iris tests first so that some things can be initialised
diff --git a/lib/iris/tests/unit/config/__init__.py b/lib/iris/tests/unit/config/__init__.py
index 38806c7db8..07805d4bd7 100644
--- a/lib/iris/tests/unit/config/__init__.py
+++ b/lib/iris/tests/unit/config/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris.config` module."""
diff --git a/lib/iris/tests/unit/config/test_NetCDF.py b/lib/iris/tests/unit/config/test_NetCDF.py
index c7f7564e4e..5b691a1dc3 100644
--- a/lib/iris/tests/unit/config/test_NetCDF.py
+++ b/lib/iris/tests/unit/config/test_NetCDF.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.config.NetCDF` class."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/constraints/__init__.py b/lib/iris/tests/unit/constraints/__init__.py
index 03a987b1a1..987e88c6e7 100644
--- a/lib/iris/tests/unit/constraints/__init__.py
+++ b/lib/iris/tests/unit/constraints/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris._constraints` module."""
diff --git a/lib/iris/tests/unit/constraints/test_Constraint_equality.py b/lib/iris/tests/unit/constraints/test_Constraint_equality.py
index 01e61b70a7..6e0b37c3f4 100644
--- a/lib/iris/tests/unit/constraints/test_Constraint_equality.py
+++ b/lib/iris/tests/unit/constraints/test_Constraint_equality.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for equality testing of different constraint types."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/constraints/test_NameConstraint.py b/lib/iris/tests/unit/constraints/test_NameConstraint.py
index 46aea25331..b959b82434 100644
--- a/lib/iris/tests/unit/constraints/test_NameConstraint.py
+++ b/lib/iris/tests/unit/constraints/test_NameConstraint.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris._constraints.NameConstraint` class."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/coord_categorisation/__init__.py b/lib/iris/tests/unit/coord_categorisation/__init__.py
index 18fe8f2482..9c60613915 100644
--- a/lib/iris/tests/unit/coord_categorisation/__init__.py
+++ b/lib/iris/tests/unit/coord_categorisation/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris.coord_categorisation` module."""
diff --git a/lib/iris/tests/unit/coord_categorisation/test_add_categorised_coord.py b/lib/iris/tests/unit/coord_categorisation/test_add_categorised_coord.py
index 0c20f16f5a..2291e677bc 100644
--- a/lib/iris/tests/unit/coord_categorisation/test_add_categorised_coord.py
+++ b/lib/iris/tests/unit/coord_categorisation/test_add_categorised_coord.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Test function :func:`iris.coord_categorisation.add_categorised_coord`."""
# import iris tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/coord_categorisation/test_add_hour.py b/lib/iris/tests/unit/coord_categorisation/test_add_hour.py
index 418ac72557..caf52e9c84 100644
--- a/lib/iris/tests/unit/coord_categorisation/test_add_hour.py
+++ b/lib/iris/tests/unit/coord_categorisation/test_add_hour.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Test coordinate categorisation function add_hour.
"""
diff --git a/lib/iris/tests/unit/coord_categorisation/test_coord_categorisation.py b/lib/iris/tests/unit/coord_categorisation/test_coord_categorisation.py
new file mode 100644
index 0000000000..6560f65a32
--- /dev/null
+++ b/lib/iris/tests/unit/coord_categorisation/test_coord_categorisation.py
@@ -0,0 +1,251 @@
+# Copyright Iris contributors
+#
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
+"""
+Test the coordinate categorisation functions.
+"""
+
+import warnings
+
+import cf_units
+import numpy as np
+import pytest
+
+import iris
+import iris.coord_categorisation as ccat
+import iris.coords
+import iris.cube
+import iris.exceptions
+from iris.tests import IrisTest
+
+
+@pytest.fixture(
+ scope="module",
+ params=(
+ ccat.add_day_of_month,
+ ccat.add_day_of_year,
+ ccat.add_weekday,
+ ccat.add_weekday_fullname,
+ ccat.add_weekday_number,
+ ccat.add_month,
+ ccat.add_month_fullname,
+ ccat.add_month_number,
+ ccat.add_year,
+ ccat.add_season,
+ ccat.add_season_number,
+ ccat.add_season_year,
+ ccat.add_season_membership,
+ ),
+)
+def categorisation_func(request):
+ return request.param
+
+
+@pytest.fixture(
+ scope="module",
+ params=(
+ ccat.add_season,
+ ccat.add_season_number,
+ ccat.add_season_year,
+ ),
+)
+def season_cat_func(request):
+ return request.param
+
+
+@pytest.fixture(scope="module")
+def day_numbers():
+ # make a series of 'day numbers' for the time, that slide across month
+ # boundaries
+ return np.arange(0, 600, 27, dtype=np.int32)
+
+
+@pytest.fixture
+def time_coord(day_numbers):
+ return iris.coords.DimCoord(
+ day_numbers,
+ standard_name="time",
+ units=cf_units.Unit("days since epoch", "standard"),
+ )
+
+
+@pytest.fixture
+def cube(day_numbers, time_coord):
+ _cube = iris.cube.Cube(day_numbers, long_name="test cube", units="metres")
+ # use day numbers as data values also (don't actually use this for
+ # anything)
+ _cube.data = day_numbers
+ _cube.add_dim_coord(time_coord, 0)
+ return _cube
+
+
+def test_bad_coord(cube, categorisation_func):
+ kwargs = {"name": "my_category"}
+ if categorisation_func is ccat.add_season_membership:
+ kwargs["season"] = "djf"
+ with pytest.raises(iris.exceptions.CoordinateNotFoundError):
+ categorisation_func(cube, "DOES NOT EXIST", **kwargs)
+
+
+def test_explicit_result_names(cube, categorisation_func):
+ result_name = "my_category"
+ fmt = "Missing/incorrectly named result for {0!r}"
+ # Specify source coordinate by name
+ new_cube = cube.copy()
+ kwargs = {"name": result_name}
+ if categorisation_func is ccat.add_season_membership:
+ kwargs["season"] = "djf"
+ with warnings.catch_warnings(record=True):
+ categorisation_func(new_cube, "time", **kwargs)
+ result_coords = new_cube.coords(result_name)
+ assert len(result_coords) == 1, fmt.format(categorisation_func.__name__)
+ # Specify source coordinate by coordinate reference
+ new_cube = cube.copy()
+ time = new_cube.coord("time")
+ with warnings.catch_warnings(record=True):
+ categorisation_func(new_cube, time, **kwargs)
+ result_coords = new_cube.coords(result_name)
+ assert len(result_coords) == 1, fmt.format(categorisation_func.__name__)
+
+
+def test_basic(cube, time_coord):
+ ccat.add_year(cube, time_coord, "my_year")
+ ccat.add_day_of_month(cube, time_coord, "my_day_of_month")
+ ccat.add_day_of_year(cube, time_coord, "my_day_of_year")
+
+ ccat.add_month(cube, time_coord, "my_month")
+ ccat.add_month_fullname(cube, time_coord, "my_month_fullname")
+ ccat.add_month_number(cube, time_coord, "my_month_number")
+
+ ccat.add_weekday(cube, time_coord, "my_weekday")
+ ccat.add_weekday_number(cube, time_coord, "my_weekday_number")
+ ccat.add_weekday_fullname(cube, time_coord, "my_weekday_fullname")
+
+ ccat.add_season(cube, time_coord, "my_season")
+ ccat.add_season_number(cube, time_coord, "my_season_number")
+ ccat.add_season_year(cube, time_coord, "my_season_year")
+
+ # also test 'generic' categorisation interface
+ def _month_in_quarter(coord, pt_value):
+ date = coord.units.num2date(pt_value)
+ return (date.month - 1) % 3
+
+ ccat.add_categorised_coord(
+ cube, "my_month_in_quarter", time_coord, _month_in_quarter
+ )
+
+ # To ensure consistent results between 32-bit and 64-bit
+ # platforms, ensure all the numeric categorisation coordinates
+ # are always stored as int64.
+ for coord in cube.coords():
+ if coord.long_name is not None and coord.points.dtype.kind == "i":
+ coord.points = coord.points.astype(np.int64)
+
+ # check values
+ IrisTest.assertCML(IrisTest(), cube, ("categorisation", "quickcheck.cml"))
+
+
+def test_add_season_nonstandard(cube, time_coord):
+ # season categorisations work for non-standard seasons?
+ seasons = ["djfm", "amjj", "ason"]
+ ccat.add_season(cube, time_coord, name="seasons", seasons=seasons)
+ ccat.add_season_number(
+ cube, time_coord, name="season_numbers", seasons=seasons
+ )
+ ccat.add_season_year(
+ cube, time_coord, name="season_years", seasons=seasons
+ )
+ IrisTest.assertCML(IrisTest(), cube, ("categorisation", "customcheck.cml"))
+
+
+@pytest.mark.parametrize("backwards", [None, False, True])
+@pytest.mark.parametrize(
+ "nonstandard",
+ [False, True],
+ ids=["standard_seasons", "nonstandard_seasons"],
+)
+def test_add_season_year(cube, time_coord, backwards, nonstandard):
+ """Specific test to account for the extra use_year_at_season_start argument."""
+
+ kwargs = dict(
+ cube=cube,
+ coord=time_coord,
+ name="season_years",
+ use_year_at_season_start=backwards,
+ )
+ if nonstandard:
+ kwargs["seasons"] = ["ndjfm", "amjj", "aso"]
+
+ # Based on the actual years of each date.
+ expected_years = np.array(([1970] * 14) + ([1971] * 9))
+ # Subset to just the 'season' of interest.
+ season_slice = np.s_[12:17]
+ expected_years = expected_years[season_slice]
+
+ # Single indices to examine to test the handling of specific months.
+ nov = 0
+ dec = 1
+ jan = 2
+ feb = 3
+ mar = 4
+
+ # Set the expected deviations from the actual date years.
+ if backwards is True:
+ expected_years[jan] = 1970
+ expected_years[feb] = 1970
+ if nonstandard:
+ expected_years[mar] = 1970
+ else:
+ # Either False or None - False being the default behaviour.
+ expected_years[dec] = 1971
+ if nonstandard:
+ expected_years[nov] = 1971
+
+ ccat.add_season_year(**kwargs)
+ actual_years = cube.coord(kwargs["name"]).points
+ # Subset to just the 'season' of interest.
+ actual_years = actual_years[season_slice]
+
+ np.testing.assert_array_almost_equal(actual_years, expected_years)
+
+
+def test_add_season_membership(cube):
+ # season membership identifies correct seasons?
+ season = "djf"
+ ccat.add_season_membership(cube, "time", season, name="in_season")
+ ccat.add_season(cube, "time")
+ coord_season = cube.coord("season")
+ coord_membership = cube.coord("in_season")
+ season_locations = np.where(coord_season.points == season)[0]
+ membership_locations = np.where(coord_membership.points)[0]
+ np.testing.assert_array_almost_equal(
+ membership_locations, season_locations
+ )
+
+
+def test_add_season_invalid_spec(cube, season_cat_func):
+ # custom seasons with an invalid season raises an error?
+ seasons = ("djf", "maj", "jja", "son") # MAJ not a season!
+ with pytest.raises(ValueError):
+ season_cat_func(cube, "time", name="my_category", seasons=seasons)
+
+
+def test_add_season_repeated_months(cube, season_cat_func):
+ # custom seasons with repeated months raises an error?
+ seasons = ("djfm", "mam", "jja", "son")
+ with pytest.raises(ValueError):
+ season_cat_func(cube, "time", name="my_category", seasons=seasons)
+
+
+def test_add_season_missing_months(cube, season_cat_func):
+ # custom seasons with missing months raises an error?
+ seasons = ("djfm", "amjj")
+ with pytest.raises(ValueError):
+ season_cat_func(cube, "time", name="my_category", seasons=seasons)
+
+
+def test_add_season_membership_invalid_spec(cube):
+ season = "maj" # not a season!
+ with pytest.raises(ValueError):
+ ccat.add_season_membership(cube, "time", season, name="maj_season")
diff --git a/lib/iris/tests/unit/coord_systems/__init__.py b/lib/iris/tests/unit/coord_systems/__init__.py
index 39d4d25f73..21f703eed0 100644
--- a/lib/iris/tests/unit/coord_systems/__init__.py
+++ b/lib/iris/tests/unit/coord_systems/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris.coord_systems` module."""
diff --git a/lib/iris/tests/unit/coord_systems/test_AlbersEqualArea.py b/lib/iris/tests/unit/coord_systems/test_AlbersEqualArea.py
index 99a7c9f59b..26aa79ac47 100644
--- a/lib/iris/tests/unit/coord_systems/test_AlbersEqualArea.py
+++ b/lib/iris/tests/unit/coord_systems/test_AlbersEqualArea.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the :class:`iris.coord_systems.AlbersEqualArea` class.
diff --git a/lib/iris/tests/unit/coord_systems/test_GeogCS.py b/lib/iris/tests/unit/coord_systems/test_GeogCS.py
index f3f9531dbb..acb9029b1e 100644
--- a/lib/iris/tests/unit/coord_systems/test_GeogCS.py
+++ b/lib/iris/tests/unit/coord_systems/test_GeogCS.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :class:`iris.coord_systems.GeogCS` class."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/coord_systems/test_Geostationary.py b/lib/iris/tests/unit/coord_systems/test_Geostationary.py
index cc3c8384db..f144dca190 100644
--- a/lib/iris/tests/unit/coord_systems/test_Geostationary.py
+++ b/lib/iris/tests/unit/coord_systems/test_Geostationary.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :class:`iris.coord_systems.Geostationary` class."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/coord_systems/test_LambertAzimuthalEqualArea.py b/lib/iris/tests/unit/coord_systems/test_LambertAzimuthalEqualArea.py
index 971ee06293..b2d0c576bb 100644
--- a/lib/iris/tests/unit/coord_systems/test_LambertAzimuthalEqualArea.py
+++ b/lib/iris/tests/unit/coord_systems/test_LambertAzimuthalEqualArea.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the :class:`iris.coord_systems.LambertAzimuthalEqualArea` class.
diff --git a/lib/iris/tests/unit/coord_systems/test_LambertConformal.py b/lib/iris/tests/unit/coord_systems/test_LambertConformal.py
index 7ba89208b1..a9bf70ef94 100644
--- a/lib/iris/tests/unit/coord_systems/test_LambertConformal.py
+++ b/lib/iris/tests/unit/coord_systems/test_LambertConformal.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :class:`iris.coord_systems.LambertConformal` class."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/coord_systems/test_Mercator.py b/lib/iris/tests/unit/coord_systems/test_Mercator.py
index ba04c77d57..dd2f42bb2f 100644
--- a/lib/iris/tests/unit/coord_systems/test_Mercator.py
+++ b/lib/iris/tests/unit/coord_systems/test_Mercator.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :class:`iris.coord_systems.Mercator` class."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/coord_systems/test_ObliqueMercator.py b/lib/iris/tests/unit/coord_systems/test_ObliqueMercator.py
index 0799fb881e..b17c1cc788 100644
--- a/lib/iris/tests/unit/coord_systems/test_ObliqueMercator.py
+++ b/lib/iris/tests/unit/coord_systems/test_ObliqueMercator.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :class:`iris.coord_systems.ObliqueMercator` class."""
from typing import List, NamedTuple
diff --git a/lib/iris/tests/unit/coord_systems/test_Orthographic.py b/lib/iris/tests/unit/coord_systems/test_Orthographic.py
index ffcbecf55c..a2b63ad5fe 100644
--- a/lib/iris/tests/unit/coord_systems/test_Orthographic.py
+++ b/lib/iris/tests/unit/coord_systems/test_Orthographic.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :class:`iris.coord_systems.Orthographic` class."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/coord_systems/test_PolarStereographic.py b/lib/iris/tests/unit/coord_systems/test_PolarStereographic.py
index 25f5d24800..16f3ef2e7d 100755
--- a/lib/iris/tests/unit/coord_systems/test_PolarStereographic.py
+++ b/lib/iris/tests/unit/coord_systems/test_PolarStereographic.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :class:`iris.coord_systems.PolarStereographic` class."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/coord_systems/test_RotatedMercator.py b/lib/iris/tests/unit/coord_systems/test_RotatedMercator.py
index 97921efec6..01a0640d3b 100644
--- a/lib/iris/tests/unit/coord_systems/test_RotatedMercator.py
+++ b/lib/iris/tests/unit/coord_systems/test_RotatedMercator.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :class:`iris.coord_systems.RotatedMercator` class."""
import pytest
diff --git a/lib/iris/tests/unit/coord_systems/test_RotatedPole.py b/lib/iris/tests/unit/coord_systems/test_RotatedPole.py
index dbb7a05bca..69408a96bc 100644
--- a/lib/iris/tests/unit/coord_systems/test_RotatedPole.py
+++ b/lib/iris/tests/unit/coord_systems/test_RotatedPole.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :class:`iris.coord_systems.RotatedPole` class."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/coord_systems/test_Stereographic.py b/lib/iris/tests/unit/coord_systems/test_Stereographic.py
index acd77112c1..cdc2fee581 100644
--- a/lib/iris/tests/unit/coord_systems/test_Stereographic.py
+++ b/lib/iris/tests/unit/coord_systems/test_Stereographic.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :class:`iris.coord_systems.Stereographic` class."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/coord_systems/test_TransverseMercator.py b/lib/iris/tests/unit/coord_systems/test_TransverseMercator.py
index 95b80333c2..526985e20d 100644
--- a/lib/iris/tests/unit/coord_systems/test_TransverseMercator.py
+++ b/lib/iris/tests/unit/coord_systems/test_TransverseMercator.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :class:`iris.coord_systems.TransverseMercator` class."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/coord_systems/test_VerticalPerspective.py b/lib/iris/tests/unit/coord_systems/test_VerticalPerspective.py
index 56498e40fa..4cd5f215a9 100644
--- a/lib/iris/tests/unit/coord_systems/test_VerticalPerspective.py
+++ b/lib/iris/tests/unit/coord_systems/test_VerticalPerspective.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :class:`iris.coord_systems.VerticalPerspective` class."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/coords/__init__.py b/lib/iris/tests/unit/coords/__init__.py
index 10cee9db8b..a99795d4da 100644
--- a/lib/iris/tests/unit/coords/__init__.py
+++ b/lib/iris/tests/unit/coords/__init__.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the :mod:`iris.coords` module.
diff --git a/lib/iris/tests/unit/coords/test_AncillaryVariable.py b/lib/iris/tests/unit/coords/test_AncillaryVariable.py
index e5fc8fd28a..0177bcafc4 100644
--- a/lib/iris/tests/unit/coords/test_AncillaryVariable.py
+++ b/lib/iris/tests/unit/coords/test_AncillaryVariable.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :class:`iris.coords.AncillaryVariable` class."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/coords/test_AuxCoord.py b/lib/iris/tests/unit/coords/test_AuxCoord.py
index e5147659fc..31bd54eb12 100644
--- a/lib/iris/tests/unit/coords/test_AuxCoord.py
+++ b/lib/iris/tests/unit/coords/test_AuxCoord.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the :class:`iris.coords.AuxCoord` class.
diff --git a/lib/iris/tests/unit/coords/test_Cell.py b/lib/iris/tests/unit/coords/test_Cell.py
index 2408ec9f36..b34ffdfb91 100644
--- a/lib/iris/tests/unit/coords/test_Cell.py
+++ b/lib/iris/tests/unit/coords/test_Cell.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :class:`iris.coords.Cell` class."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/coords/test_CellMeasure.py b/lib/iris/tests/unit/coords/test_CellMeasure.py
index 0bd66c6e98..c667e012ef 100644
--- a/lib/iris/tests/unit/coords/test_CellMeasure.py
+++ b/lib/iris/tests/unit/coords/test_CellMeasure.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :class:`iris.coords.CellMeasure` class."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/coords/test_CellMethod.py b/lib/iris/tests/unit/coords/test_CellMethod.py
index 21b309a32b..274606510a 100644
--- a/lib/iris/tests/unit/coords/test_CellMethod.py
+++ b/lib/iris/tests/unit/coords/test_CellMethod.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the :class:`iris.coords.CellMethod`.
"""
diff --git a/lib/iris/tests/unit/coords/test_Coord.py b/lib/iris/tests/unit/coords/test_Coord.py
index c548d017f2..1c9c3cce2d 100644
--- a/lib/iris/tests/unit/coords/test_Coord.py
+++ b/lib/iris/tests/unit/coords/test_Coord.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :class:`iris.coords.Coord` class."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/coords/test_DimCoord.py b/lib/iris/tests/unit/coords/test_DimCoord.py
index dd0ba48f3d..2c8ab3a7ba 100644
--- a/lib/iris/tests/unit/coords/test_DimCoord.py
+++ b/lib/iris/tests/unit/coords/test_DimCoord.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the :class:`iris.coords.DimCoord` class.
diff --git a/lib/iris/tests/unit/coords/test__DimensionalMetadata.py b/lib/iris/tests/unit/coords/test__DimensionalMetadata.py
index 83fcbc4512..91a50a9a1c 100644
--- a/lib/iris/tests/unit/coords/test__DimensionalMetadata.py
+++ b/lib/iris/tests/unit/coords/test__DimensionalMetadata.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :class:`iris.coords._DimensionalMetadata` class."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/cube/__init__.py b/lib/iris/tests/unit/cube/__init__.py
index 7852593e21..8c72b2af8c 100644
--- a/lib/iris/tests/unit/cube/__init__.py
+++ b/lib/iris/tests/unit/cube/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris.cube` module."""
diff --git a/lib/iris/tests/unit/cube/test_Cube.py b/lib/iris/tests/unit/cube/test_Cube.py
index 443c9db546..b1eed4743e 100644
--- a/lib/iris/tests/unit/cube/test_Cube.py
+++ b/lib/iris/tests/unit/cube/test_Cube.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.cube.Cube` class."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/cube/test_CubeList.py b/lib/iris/tests/unit/cube/test_CubeList.py
index 86457d3888..386df39b66 100644
--- a/lib/iris/tests/unit/cube/test_CubeList.py
+++ b/lib/iris/tests/unit/cube/test_CubeList.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.cube.CubeList` class."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/cube/test_Cube__aggregated_by.py b/lib/iris/tests/unit/cube/test_Cube__aggregated_by.py
index c591e45f63..854a0d431a 100644
--- a/lib/iris/tests/unit/cube/test_Cube__aggregated_by.py
+++ b/lib/iris/tests/unit/cube/test_Cube__aggregated_by.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.cube.Cube` class aggregated_by method."""
# import iris tests first so that some things can be initialised
diff --git a/lib/iris/tests/unit/cube/test_Cube__operators.py b/lib/iris/tests/unit/cube/test_Cube__operators.py
index e860c57636..0afd5a9d70 100644
--- a/lib/iris/tests/unit/cube/test_Cube__operators.py
+++ b/lib/iris/tests/unit/cube/test_Cube__operators.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.cube.Cube` class operators."""
# import iris tests first so that some things can be initialised
diff --git a/lib/iris/tests/unit/data_manager/__init__.py b/lib/iris/tests/unit/data_manager/__init__.py
index 41dcc0adf3..1a2ebdc944 100644
--- a/lib/iris/tests/unit/data_manager/__init__.py
+++ b/lib/iris/tests/unit/data_manager/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris._data_manager` module."""
diff --git a/lib/iris/tests/unit/data_manager/test_DataManager.py b/lib/iris/tests/unit/data_manager/test_DataManager.py
index e73714730f..1b91e256f4 100644
--- a/lib/iris/tests/unit/data_manager/test_DataManager.py
+++ b/lib/iris/tests/unit/data_manager/test_DataManager.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the :class:`iris._data_manager.DataManager`.
diff --git a/lib/iris/tests/unit/experimental/__init__.py b/lib/iris/tests/unit/experimental/__init__.py
index 438827bab2..38af9c7a97 100644
--- a/lib/iris/tests/unit/experimental/__init__.py
+++ b/lib/iris/tests/unit/experimental/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris.experimental` package."""
diff --git a/lib/iris/tests/unit/experimental/raster/__init__.py b/lib/iris/tests/unit/experimental/raster/__init__.py
index 5f85d810c9..408926e2d9 100644
--- a/lib/iris/tests/unit/experimental/raster/__init__.py
+++ b/lib/iris/tests/unit/experimental/raster/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris.experimental.raster` module."""
diff --git a/lib/iris/tests/unit/experimental/raster/test_export_geotiff.py b/lib/iris/tests/unit/experimental/raster/test_export_geotiff.py
index a3b68ef761..af726c0fa9 100644
--- a/lib/iris/tests/unit/experimental/raster/test_export_geotiff.py
+++ b/lib/iris/tests/unit/experimental/raster/test_export_geotiff.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.experimental.raster.export_geotiff` function."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/experimental/regrid/__init__.py b/lib/iris/tests/unit/experimental/regrid/__init__.py
index 578c15f11c..f001cccada 100644
--- a/lib/iris/tests/unit/experimental/regrid/__init__.py
+++ b/lib/iris/tests/unit/experimental/regrid/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris.experimental.regrid` package."""
diff --git a/lib/iris/tests/unit/experimental/regrid/test_regrid_area_weighted_rectilinear_src_and_grid.py b/lib/iris/tests/unit/experimental/regrid/test_regrid_area_weighted_rectilinear_src_and_grid.py
index 5ec3c956b9..3cec1f8569 100644
--- a/lib/iris/tests/unit/experimental/regrid/test_regrid_area_weighted_rectilinear_src_and_grid.py
+++ b/lib/iris/tests/unit/experimental/regrid/test_regrid_area_weighted_rectilinear_src_and_grid.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Test function
:func:`iris.experimental.regrid.regrid_area_weighted_rectilinear_src_and_grid`.
diff --git a/lib/iris/tests/unit/experimental/regrid/test_regrid_weighted_curvilinear_to_rectilinear.py b/lib/iris/tests/unit/experimental/regrid/test_regrid_weighted_curvilinear_to_rectilinear.py
index b0908dd2e4..f9397da219 100644
--- a/lib/iris/tests/unit/experimental/regrid/test_regrid_weighted_curvilinear_to_rectilinear.py
+++ b/lib/iris/tests/unit/experimental/regrid/test_regrid_weighted_curvilinear_to_rectilinear.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Test function
:func:`iris.experimental.regrid.regrid_weighted_curvilinear_to_rectilinear`.
diff --git a/lib/iris/tests/unit/experimental/representation/__init__.py b/lib/iris/tests/unit/experimental/representation/__init__.py
index c856263a5c..764b46ef58 100644
--- a/lib/iris/tests/unit/experimental/representation/__init__.py
+++ b/lib/iris/tests/unit/experimental/representation/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris.experimental.representation` package."""
diff --git a/lib/iris/tests/unit/experimental/representation/test_CubeListRepresentation.py b/lib/iris/tests/unit/experimental/representation/test_CubeListRepresentation.py
index 8dc3cd7849..678eaa5fea 100644
--- a/lib/iris/tests/unit/experimental/representation/test_CubeListRepresentation.py
+++ b/lib/iris/tests/unit/experimental/representation/test_CubeListRepresentation.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.cube.CubeRepresentation` class."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/experimental/representation/test_CubeRepresentation.py b/lib/iris/tests/unit/experimental/representation/test_CubeRepresentation.py
index e6b1425110..aadb07c882 100644
--- a/lib/iris/tests/unit/experimental/representation/test_CubeRepresentation.py
+++ b/lib/iris/tests/unit/experimental/representation/test_CubeRepresentation.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.cube.CubeRepresentation` class."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/experimental/stratify/__init__.py b/lib/iris/tests/unit/experimental/stratify/__init__.py
index 7218455e76..41663ee7a4 100644
--- a/lib/iris/tests/unit/experimental/stratify/__init__.py
+++ b/lib/iris/tests/unit/experimental/stratify/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris.experimental.stratify` package."""
diff --git a/lib/iris/tests/unit/experimental/stratify/test_relevel.py b/lib/iris/tests/unit/experimental/stratify/test_relevel.py
index 6958fa9a2f..a0db398257 100644
--- a/lib/iris/tests/unit/experimental/stratify/test_relevel.py
+++ b/lib/iris/tests/unit/experimental/stratify/test_relevel.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the :func:`iris.experimental.stratify.relevel` function.
diff --git a/lib/iris/tests/unit/experimental/ugrid/__init__.py b/lib/iris/tests/unit/experimental/ugrid/__init__.py
index 7f55678f06..27d7921e5f 100644
--- a/lib/iris/tests/unit/experimental/ugrid/__init__.py
+++ b/lib/iris/tests/unit/experimental/ugrid/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris.experimental.ugrid` package."""
diff --git a/lib/iris/tests/unit/experimental/ugrid/cf/__init__.py b/lib/iris/tests/unit/experimental/ugrid/cf/__init__.py
index 2e70f2cd5d..19507555c7 100644
--- a/lib/iris/tests/unit/experimental/ugrid/cf/__init__.py
+++ b/lib/iris/tests/unit/experimental/ugrid/cf/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris.experimental.ugrid.cf` package."""
diff --git a/lib/iris/tests/unit/experimental/ugrid/cf/test_CFUGridAuxiliaryCoordinateVariable.py b/lib/iris/tests/unit/experimental/ugrid/cf/test_CFUGridAuxiliaryCoordinateVariable.py
index 641b6b7b44..22914215b7 100644
--- a/lib/iris/tests/unit/experimental/ugrid/cf/test_CFUGridAuxiliaryCoordinateVariable.py
+++ b/lib/iris/tests/unit/experimental/ugrid/cf/test_CFUGridAuxiliaryCoordinateVariable.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the :class:`iris.experimental.ugrid.cf.CFUGridAuxiliaryCoordinateVariable` class.
diff --git a/lib/iris/tests/unit/experimental/ugrid/cf/test_CFUGridConnectivityVariable.py b/lib/iris/tests/unit/experimental/ugrid/cf/test_CFUGridConnectivityVariable.py
index 5a68a8c03f..5fae20e6fc 100644
--- a/lib/iris/tests/unit/experimental/ugrid/cf/test_CFUGridConnectivityVariable.py
+++ b/lib/iris/tests/unit/experimental/ugrid/cf/test_CFUGridConnectivityVariable.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the :class:`iris.experimental.ugrid.cf.CFUGridConnectivityVariable` class.
diff --git a/lib/iris/tests/unit/experimental/ugrid/cf/test_CFUGridGroup.py b/lib/iris/tests/unit/experimental/ugrid/cf/test_CFUGridGroup.py
index a3a0e665bb..1e707d9550 100644
--- a/lib/iris/tests/unit/experimental/ugrid/cf/test_CFUGridGroup.py
+++ b/lib/iris/tests/unit/experimental/ugrid/cf/test_CFUGridGroup.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the :class:`iris.experimental.ugrid.cf.CFUGridGroup` class.
diff --git a/lib/iris/tests/unit/experimental/ugrid/cf/test_CFUGridMeshVariable.py b/lib/iris/tests/unit/experimental/ugrid/cf/test_CFUGridMeshVariable.py
index 8302c30177..59d3a8aad9 100644
--- a/lib/iris/tests/unit/experimental/ugrid/cf/test_CFUGridMeshVariable.py
+++ b/lib/iris/tests/unit/experimental/ugrid/cf/test_CFUGridMeshVariable.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the :class:`iris.experimental.ugrid.cf.CFUGridMeshVariable` class.
diff --git a/lib/iris/tests/unit/experimental/ugrid/cf/test_CFUGridReader.py b/lib/iris/tests/unit/experimental/ugrid/cf/test_CFUGridReader.py
index d9de814b05..52eb569b43 100644
--- a/lib/iris/tests/unit/experimental/ugrid/cf/test_CFUGridReader.py
+++ b/lib/iris/tests/unit/experimental/ugrid/cf/test_CFUGridReader.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the :class:`iris.experimental.ugrid.cf.CFUGridGroup` class.
diff --git a/lib/iris/tests/unit/experimental/ugrid/load/__init__.py b/lib/iris/tests/unit/experimental/ugrid/load/__init__.py
index 36c9108dc2..3248db6e41 100644
--- a/lib/iris/tests/unit/experimental/ugrid/load/__init__.py
+++ b/lib/iris/tests/unit/experimental/ugrid/load/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris.experimental.ugrid.load` package."""
diff --git a/lib/iris/tests/unit/experimental/ugrid/load/test_ParseUgridOnLoad.py b/lib/iris/tests/unit/experimental/ugrid/load/test_ParseUgridOnLoad.py
index 1203633297..5c33b27d3e 100644
--- a/lib/iris/tests/unit/experimental/ugrid/load/test_ParseUgridOnLoad.py
+++ b/lib/iris/tests/unit/experimental/ugrid/load/test_ParseUgridOnLoad.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the :class:`iris.experimental.ugrid.load.ParseUgridOnLoad` class.
diff --git a/lib/iris/tests/unit/experimental/ugrid/load/test_load_mesh.py b/lib/iris/tests/unit/experimental/ugrid/load/test_load_mesh.py
index 4de11d5610..8dab48ae9c 100644
--- a/lib/iris/tests/unit/experimental/ugrid/load/test_load_mesh.py
+++ b/lib/iris/tests/unit/experimental/ugrid/load/test_load_mesh.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the :func:`iris.experimental.ugrid.load.load_mesh` function.
diff --git a/lib/iris/tests/unit/experimental/ugrid/load/test_load_meshes.py b/lib/iris/tests/unit/experimental/ugrid/load/test_load_meshes.py
index 310e68248a..1ec3e65a97 100644
--- a/lib/iris/tests/unit/experimental/ugrid/load/test_load_meshes.py
+++ b/lib/iris/tests/unit/experimental/ugrid/load/test_load_meshes.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the :func:`iris.experimental.ugrid.load.load_meshes` function.
diff --git a/lib/iris/tests/unit/experimental/ugrid/mesh/__init__.py b/lib/iris/tests/unit/experimental/ugrid/mesh/__init__.py
index 4ce979d845..d485782c11 100644
--- a/lib/iris/tests/unit/experimental/ugrid/mesh/__init__.py
+++ b/lib/iris/tests/unit/experimental/ugrid/mesh/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris.experimental.ugrid.mesh` package."""
diff --git a/lib/iris/tests/unit/experimental/ugrid/mesh/test_Connectivity.py b/lib/iris/tests/unit/experimental/ugrid/mesh/test_Connectivity.py
index 7e90555801..7251597006 100644
--- a/lib/iris/tests/unit/experimental/ugrid/mesh/test_Connectivity.py
+++ b/lib/iris/tests/unit/experimental/ugrid/mesh/test_Connectivity.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :class:`iris.experimental.ugrid.mesh.Connectivity` class."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/experimental/ugrid/mesh/test_Mesh.py b/lib/iris/tests/unit/experimental/ugrid/mesh/test_Mesh.py
index 64d106f97d..6784bb6e50 100644
--- a/lib/iris/tests/unit/experimental/ugrid/mesh/test_Mesh.py
+++ b/lib/iris/tests/unit/experimental/ugrid/mesh/test_Mesh.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :class:`mesh` class."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/experimental/ugrid/mesh/test_MeshCoord.py b/lib/iris/tests/unit/experimental/ugrid/mesh/test_MeshCoord.py
index b95c5f09bb..a023762d10 100644
--- a/lib/iris/tests/unit/experimental/ugrid/mesh/test_MeshCoord.py
+++ b/lib/iris/tests/unit/experimental/ugrid/mesh/test_MeshCoord.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the :class:`iris.experimental.ugrid.mesh.MeshCoord`.
diff --git a/lib/iris/tests/unit/experimental/ugrid/mesh/test_Mesh__from_coords.py b/lib/iris/tests/unit/experimental/ugrid/mesh/test_Mesh__from_coords.py
index edd34f94a1..2581bf106a 100644
--- a/lib/iris/tests/unit/experimental/ugrid/mesh/test_Mesh__from_coords.py
+++ b/lib/iris/tests/unit/experimental/ugrid/mesh/test_Mesh__from_coords.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the :meth:`iris.experimental.ugrid.mesh.Mesh.from_coords`.
diff --git a/lib/iris/tests/unit/experimental/ugrid/metadata/__init__.py b/lib/iris/tests/unit/experimental/ugrid/metadata/__init__.py
index 2d2d040c1d..a8ad2bc014 100644
--- a/lib/iris/tests/unit/experimental/ugrid/metadata/__init__.py
+++ b/lib/iris/tests/unit/experimental/ugrid/metadata/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris.experimental.ugrid.metadata` package."""
diff --git a/lib/iris/tests/unit/experimental/ugrid/metadata/test_ConnectivityMetadata.py b/lib/iris/tests/unit/experimental/ugrid/metadata/test_ConnectivityMetadata.py
index af92e69b08..3b8e5ded9f 100644
--- a/lib/iris/tests/unit/experimental/ugrid/metadata/test_ConnectivityMetadata.py
+++ b/lib/iris/tests/unit/experimental/ugrid/metadata/test_ConnectivityMetadata.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the :class:`iris.experimental.ugrid.metadata.ConnectivityMetadata`.
diff --git a/lib/iris/tests/unit/experimental/ugrid/metadata/test_MeshCoordMetadata.py b/lib/iris/tests/unit/experimental/ugrid/metadata/test_MeshCoordMetadata.py
index 5c96fb7856..0786c52934 100644
--- a/lib/iris/tests/unit/experimental/ugrid/metadata/test_MeshCoordMetadata.py
+++ b/lib/iris/tests/unit/experimental/ugrid/metadata/test_MeshCoordMetadata.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the :class:`iris.experimental.ugrid.metadata.MeshCoordMetadata`.
diff --git a/lib/iris/tests/unit/experimental/ugrid/metadata/test_MeshMetadata.py b/lib/iris/tests/unit/experimental/ugrid/metadata/test_MeshMetadata.py
index a8b25dc2e7..ba7199b777 100644
--- a/lib/iris/tests/unit/experimental/ugrid/metadata/test_MeshMetadata.py
+++ b/lib/iris/tests/unit/experimental/ugrid/metadata/test_MeshMetadata.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the :class:`iris.experimental.ugrid.metadata.MeshMetadata`.
diff --git a/lib/iris/tests/unit/experimental/ugrid/utils/__init__.py b/lib/iris/tests/unit/experimental/ugrid/utils/__init__.py
index 135d7ee49c..ea8202f8fb 100644
--- a/lib/iris/tests/unit/experimental/ugrid/utils/__init__.py
+++ b/lib/iris/tests/unit/experimental/ugrid/utils/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris.experimental.ugrid.utils` package."""
diff --git a/lib/iris/tests/unit/experimental/ugrid/utils/test_recombine_submeshes.py b/lib/iris/tests/unit/experimental/ugrid/utils/test_recombine_submeshes.py
index 4face700ad..a3cd91815f 100644
--- a/lib/iris/tests/unit/experimental/ugrid/utils/test_recombine_submeshes.py
+++ b/lib/iris/tests/unit/experimental/ugrid/utils/test_recombine_submeshes.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for :func:`iris.experimental.ugrid.utils.recombine_submeshes`.
diff --git a/lib/iris/tests/unit/fileformats/__init__.py b/lib/iris/tests/unit/fileformats/__init__.py
index fa31283c87..4c0bca25c1 100644
--- a/lib/iris/tests/unit/fileformats/__init__.py
+++ b/lib/iris/tests/unit/fileformats/__init__.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris.fileformats` package."""
import iris.tests as tests # isort:skip
diff --git a/lib/iris/tests/unit/fileformats/abf/__init__.py b/lib/iris/tests/unit/fileformats/abf/__init__.py
index aaddf427c5..5ddf017c42 100644
--- a/lib/iris/tests/unit/fileformats/abf/__init__.py
+++ b/lib/iris/tests/unit/fileformats/abf/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris.fileformats.abf` module."""
diff --git a/lib/iris/tests/unit/fileformats/abf/test_ABFField.py b/lib/iris/tests/unit/fileformats/abf/test_ABFField.py
index 98db52d3e9..b67e02ec06 100644
--- a/lib/iris/tests/unit/fileformats/abf/test_ABFField.py
+++ b/lib/iris/tests/unit/fileformats/abf/test_ABFField.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.fileformats.abf.ABFField` class."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/fileformats/cf/__init__.py b/lib/iris/tests/unit/fileformats/cf/__init__.py
index 1bff79368b..6bc562f922 100644
--- a/lib/iris/tests/unit/fileformats/cf/__init__.py
+++ b/lib/iris/tests/unit/fileformats/cf/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris.fileformats.cf` module."""
diff --git a/lib/iris/tests/unit/fileformats/cf/test_CFGroup.py b/lib/iris/tests/unit/fileformats/cf/test_CFGroup.py
index bfc2d586ef..48f383d7f7 100644
--- a/lib/iris/tests/unit/fileformats/cf/test_CFGroup.py
+++ b/lib/iris/tests/unit/fileformats/cf/test_CFGroup.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :class:`iris.fileformats.cf.CFGroup` class."""
from unittest.mock import MagicMock
diff --git a/lib/iris/tests/unit/fileformats/cf/test_CFReader.py b/lib/iris/tests/unit/fileformats/cf/test_CFReader.py
index 9e5cf9b7a5..4829d03dbb 100644
--- a/lib/iris/tests/unit/fileformats/cf/test_CFReader.py
+++ b/lib/iris/tests/unit/fileformats/cf/test_CFReader.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the `iris.fileformats.cf.CFReader` class.
diff --git a/lib/iris/tests/unit/fileformats/dot/__init__.py b/lib/iris/tests/unit/fileformats/dot/__init__.py
index 0dbc3ad4c6..afbfed17d8 100644
--- a/lib/iris/tests/unit/fileformats/dot/__init__.py
+++ b/lib/iris/tests/unit/fileformats/dot/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for :mod:`iris.fileformats.dot`."""
diff --git a/lib/iris/tests/unit/fileformats/dot/test__dot_path.py b/lib/iris/tests/unit/fileformats/dot/test__dot_path.py
index 1111e8bc83..a29eb625d0 100644
--- a/lib/iris/tests/unit/fileformats/dot/test__dot_path.py
+++ b/lib/iris/tests/unit/fileformats/dot/test__dot_path.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for :func:`iris.fileformats.dot._dot_path`."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/fileformats/ff/__init__.py b/lib/iris/tests/unit/fileformats/ff/__init__.py
index 4d13a18520..945b4f46b5 100644
--- a/lib/iris/tests/unit/fileformats/ff/__init__.py
+++ b/lib/iris/tests/unit/fileformats/ff/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris.fileformats.ff` module."""
diff --git a/lib/iris/tests/unit/fileformats/ff/test_ArakawaC.py b/lib/iris/tests/unit/fileformats/ff/test_ArakawaC.py
index d37b854405..5e731632c6 100644
--- a/lib/iris/tests/unit/fileformats/ff/test_ArakawaC.py
+++ b/lib/iris/tests/unit/fileformats/ff/test_ArakawaC.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for :class:`iris.fileformat.ff.ArakawaC`."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/fileformats/ff/test_ENDGame.py b/lib/iris/tests/unit/fileformats/ff/test_ENDGame.py
index 696dacd672..98bc42ddf3 100644
--- a/lib/iris/tests/unit/fileformats/ff/test_ENDGame.py
+++ b/lib/iris/tests/unit/fileformats/ff/test_ENDGame.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for :class:`iris.fileformat.ff.ENDGame`."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/fileformats/ff/test_FF2PP.py b/lib/iris/tests/unit/fileformats/ff/test_FF2PP.py
index 16943c0c15..15bb61e230 100644
--- a/lib/iris/tests/unit/fileformats/ff/test_FF2PP.py
+++ b/lib/iris/tests/unit/fileformats/ff/test_FF2PP.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :class:`iris.fileformat.ff.FF2PP` class."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/fileformats/ff/test_FFHeader.py b/lib/iris/tests/unit/fileformats/ff/test_FFHeader.py
index 72d522ec85..cbbc81dd4b 100644
--- a/lib/iris/tests/unit/fileformats/ff/test_FFHeader.py
+++ b/lib/iris/tests/unit/fileformats/ff/test_FFHeader.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for :class:`iris.fileformat.ff.FFHeader`."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/fileformats/ff/test_Grid.py b/lib/iris/tests/unit/fileformats/ff/test_Grid.py
index b20c85b9a8..1bb9688c1a 100644
--- a/lib/iris/tests/unit/fileformats/ff/test_Grid.py
+++ b/lib/iris/tests/unit/fileformats/ff/test_Grid.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for :class:`iris.fileformat.ff.Grid`."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/fileformats/ff/test_NewDynamics.py b/lib/iris/tests/unit/fileformats/ff/test_NewDynamics.py
index 5f0d64da71..f3cc41aa82 100644
--- a/lib/iris/tests/unit/fileformats/ff/test_NewDynamics.py
+++ b/lib/iris/tests/unit/fileformats/ff/test_NewDynamics.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for :class:`iris.fileformat.ff.NewDynamics`."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/fileformats/name_loaders/__init__.py b/lib/iris/tests/unit/fileformats/name_loaders/__init__.py
index 751801a176..e9af5168b8 100644
--- a/lib/iris/tests/unit/fileformats/name_loaders/__init__.py
+++ b/lib/iris/tests/unit/fileformats/name_loaders/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris.fileformats.name_loaders` package."""
diff --git a/lib/iris/tests/unit/fileformats/name_loaders/test__build_cell_methods.py b/lib/iris/tests/unit/fileformats/name_loaders/test__build_cell_methods.py
index 624837c19d..2ebde5782f 100644
--- a/lib/iris/tests/unit/fileformats/name_loaders/test__build_cell_methods.py
+++ b/lib/iris/tests/unit/fileformats/name_loaders/test__build_cell_methods.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for :func:`iris.fileformats.name_loaders._build_cell_methods`.
diff --git a/lib/iris/tests/unit/fileformats/name_loaders/test__build_lat_lon_for_NAME_timeseries.py b/lib/iris/tests/unit/fileformats/name_loaders/test__build_lat_lon_for_NAME_timeseries.py
index 5954823c54..e71a31f10f 100644
--- a/lib/iris/tests/unit/fileformats/name_loaders/test__build_lat_lon_for_NAME_timeseries.py
+++ b/lib/iris/tests/unit/fileformats/name_loaders/test__build_lat_lon_for_NAME_timeseries.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for :func:`iris.analysis.name_loaders._build_lat_lon_for_NAME_timeseries`.
diff --git a/lib/iris/tests/unit/fileformats/name_loaders/test__calc_integration_period.py b/lib/iris/tests/unit/fileformats/name_loaders/test__calc_integration_period.py
index c4cbde8c14..20ef79cec3 100644
--- a/lib/iris/tests/unit/fileformats/name_loaders/test__calc_integration_period.py
+++ b/lib/iris/tests/unit/fileformats/name_loaders/test__calc_integration_period.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for :func:`iris.fileformats.name_loaders.__calc_integration_period`.
diff --git a/lib/iris/tests/unit/fileformats/name_loaders/test__cf_height_from_name.py b/lib/iris/tests/unit/fileformats/name_loaders/test__cf_height_from_name.py
index 078f65d572..ea09d40acb 100644
--- a/lib/iris/tests/unit/fileformats/name_loaders/test__cf_height_from_name.py
+++ b/lib/iris/tests/unit/fileformats/name_loaders/test__cf_height_from_name.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the :class:`iris.analysis.name_loaders._cf_height_from_name`
function.
diff --git a/lib/iris/tests/unit/fileformats/name_loaders/test__generate_cubes.py b/lib/iris/tests/unit/fileformats/name_loaders/test__generate_cubes.py
index d50a7fdad1..2eea25a26d 100644
--- a/lib/iris/tests/unit/fileformats/name_loaders/test__generate_cubes.py
+++ b/lib/iris/tests/unit/fileformats/name_loaders/test__generate_cubes.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for :func:`iris.analysis.name_loaders._generate_cubes`.
diff --git a/lib/iris/tests/unit/fileformats/nc_load_rules/__init__.py b/lib/iris/tests/unit/fileformats/nc_load_rules/__init__.py
index 2ea22c420b..a29f504b7e 100644
--- a/lib/iris/tests/unit/fileformats/nc_load_rules/__init__.py
+++ b/lib/iris/tests/unit/fileformats/nc_load_rules/__init__.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the module
:mod:`iris.fileformats.netcdf._nc_load_rules` .
diff --git a/lib/iris/tests/unit/fileformats/nc_load_rules/actions/__init__.py b/lib/iris/tests/unit/fileformats/nc_load_rules/actions/__init__.py
index 38882810d2..efb5e55be8 100644
--- a/lib/iris/tests/unit/fileformats/nc_load_rules/actions/__init__.py
+++ b/lib/iris/tests/unit/fileformats/nc_load_rules/actions/__init__.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the module :mod:`iris.fileformats._nc_load_rules.actions`.
diff --git a/lib/iris/tests/unit/fileformats/nc_load_rules/actions/test__grid_mappings.py b/lib/iris/tests/unit/fileformats/nc_load_rules/actions/test__grid_mappings.py
index 99a1b66ae4..906ba33f9c 100644
--- a/lib/iris/tests/unit/fileformats/nc_load_rules/actions/test__grid_mappings.py
+++ b/lib/iris/tests/unit/fileformats/nc_load_rules/actions/test__grid_mappings.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the engine.activate() call within the
`iris.fileformats.netcdf._load_cube` function.
diff --git a/lib/iris/tests/unit/fileformats/nc_load_rules/actions/test__hybrid_formulae.py b/lib/iris/tests/unit/fileformats/nc_load_rules/actions/test__hybrid_formulae.py
index d962fc2758..582ab7e200 100644
--- a/lib/iris/tests/unit/fileformats/nc_load_rules/actions/test__hybrid_formulae.py
+++ b/lib/iris/tests/unit/fileformats/nc_load_rules/actions/test__hybrid_formulae.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the engine.activate() call within the
`iris.fileformats.netcdf._load_cube` function.
diff --git a/lib/iris/tests/unit/fileformats/nc_load_rules/actions/test__latlon_dimcoords.py b/lib/iris/tests/unit/fileformats/nc_load_rules/actions/test__latlon_dimcoords.py
index dfa862c4d1..a8c7d2cc5f 100644
--- a/lib/iris/tests/unit/fileformats/nc_load_rules/actions/test__latlon_dimcoords.py
+++ b/lib/iris/tests/unit/fileformats/nc_load_rules/actions/test__latlon_dimcoords.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the engine.activate() call within the
`iris.fileformats.netcdf._load_cube` function.
diff --git a/lib/iris/tests/unit/fileformats/nc_load_rules/actions/test__miscellaneous.py b/lib/iris/tests/unit/fileformats/nc_load_rules/actions/test__miscellaneous.py
index ffe00c8c19..a1a93056cb 100644
--- a/lib/iris/tests/unit/fileformats/nc_load_rules/actions/test__miscellaneous.py
+++ b/lib/iris/tests/unit/fileformats/nc_load_rules/actions/test__miscellaneous.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the engine.activate() call within the
`iris.fileformats.netcdf._load_cube` function.
diff --git a/lib/iris/tests/unit/fileformats/nc_load_rules/actions/test__time_coords.py b/lib/iris/tests/unit/fileformats/nc_load_rules/actions/test__time_coords.py
index 59ffa30684..c27d2445e9 100644
--- a/lib/iris/tests/unit/fileformats/nc_load_rules/actions/test__time_coords.py
+++ b/lib/iris/tests/unit/fileformats/nc_load_rules/actions/test__time_coords.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the engine.activate() call within the
`iris.fileformats.netcdf._load_cube` function.
diff --git a/lib/iris/tests/unit/fileformats/nc_load_rules/engine/__init__.py b/lib/iris/tests/unit/fileformats/nc_load_rules/engine/__init__.py
index e6508bea85..127ebbf68b 100644
--- a/lib/iris/tests/unit/fileformats/nc_load_rules/engine/__init__.py
+++ b/lib/iris/tests/unit/fileformats/nc_load_rules/engine/__init__.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the module
:mod:`iris.fileformats.netcdf._nc_load_rules.engine` .
diff --git a/lib/iris/tests/unit/fileformats/nc_load_rules/engine/test_engine.py b/lib/iris/tests/unit/fileformats/nc_load_rules/engine/test_engine.py
index df5fbd4922..994d2958c2 100644
--- a/lib/iris/tests/unit/fileformats/nc_load_rules/engine/test_engine.py
+++ b/lib/iris/tests/unit/fileformats/nc_load_rules/engine/test_engine.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the :mod:`iris.fileformats._nc_load_rules.engine` module.
diff --git a/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/__init__.py b/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/__init__.py
index 69a536b9ae..62bc3a6c9f 100644
--- a/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/__init__.py
+++ b/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/__init__.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the module
:mod:`iris.fileformats.netcdf._nc_load_rules.helpers` .
diff --git a/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_albers_equal_area_coordinate_system.py b/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_albers_equal_area_coordinate_system.py
index c040d43ca0..b6e9ba954c 100644
--- a/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_albers_equal_area_coordinate_system.py
+++ b/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_albers_equal_area_coordinate_system.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Test function :func:`iris.fileformats._nc_load_rules.helpers.\
build_albers_equal_area_coordinate_system`.
diff --git a/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_ancil_var.py b/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_ancil_var.py
index 87070e00ba..2d1010166f 100644
--- a/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_ancil_var.py
+++ b/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_ancil_var.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Test function :func:`iris.fileformats._nc_load_rules.helpers.build_ancil_var`.
diff --git a/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_auxiliary_coordinate.py b/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_auxiliary_coordinate.py
index 369f92f238..fd500b4831 100644
--- a/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_auxiliary_coordinate.py
+++ b/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_auxiliary_coordinate.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Test function :func:`iris.fileformats._nc_load_rules.helpers.\
build_auxilliary_coordinate`.
diff --git a/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_cell_measure.py b/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_cell_measure.py
index d0421186b4..ee66f8b267 100644
--- a/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_cell_measure.py
+++ b/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_cell_measure.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Test function :func:`iris.fileformats._nc_load_rules.helpers.build_cell_measure`.
diff --git a/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_cube_metadata.py b/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_cube_metadata.py
index a13fa6cca0..e2297be69e 100644
--- a/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_cube_metadata.py
+++ b/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_cube_metadata.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Test function :func:`iris.fileformats._nc_load_rules.helpers\
build_cube_metadata`.
diff --git a/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_dimension_coordinate.py b/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_dimension_coordinate.py
index bc13975441..4f19d44a2a 100644
--- a/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_dimension_coordinate.py
+++ b/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_dimension_coordinate.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Test function :func:`iris.fileformats._nc_load_rules.helpers.\
build_dimension_coordinate`.
diff --git a/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_geostationary_coordinate_system.py b/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_geostationary_coordinate_system.py
index 28b3d8ab9a..a3efcb0dc4 100644
--- a/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_geostationary_coordinate_system.py
+++ b/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_geostationary_coordinate_system.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Test function :func:`iris.fileformats._nc_load_rules.helpers.\
build_geostationary_coordinate_system`.
diff --git a/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_lambert_azimuthal_equal_area_coordinate_system.py b/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_lambert_azimuthal_equal_area_coordinate_system.py
index 05185a4cf5..8d5b46c6bb 100644
--- a/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_lambert_azimuthal_equal_area_coordinate_system.py
+++ b/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_lambert_azimuthal_equal_area_coordinate_system.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Test function :func:`iris.fileformats._nc_load_rules.helpers.\
build_lambert_azimuthal_equal_area_coordinate_system`.
diff --git a/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_lambert_conformal_coordinate_system.py b/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_lambert_conformal_coordinate_system.py
index 22bb7149b1..9232e146cb 100644
--- a/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_lambert_conformal_coordinate_system.py
+++ b/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_lambert_conformal_coordinate_system.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Test function :func:`iris.fileformats._nc_load_rules.helpers.\
build_lambert_conformal_coordinate_system`.
diff --git a/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_mercator_coordinate_system.py b/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_mercator_coordinate_system.py
index ab61d3b1b2..4958eccbfd 100644
--- a/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_mercator_coordinate_system.py
+++ b/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_mercator_coordinate_system.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Test function :func:`iris.fileformats._nc_load_rules.helpers.\
build_mercator_coordinate_system`.
diff --git a/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_oblique_mercator_coordinate_system.py b/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_oblique_mercator_coordinate_system.py
index b11d8d3cca..c377cf7d1b 100644
--- a/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_oblique_mercator_coordinate_system.py
+++ b/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_oblique_mercator_coordinate_system.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Test function :func:`iris.fileformats._nc_load_rules.helpers.build_oblique_mercator_coordinate_system`.
diff --git a/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_polar_stereographic_coordinate_system.py b/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_polar_stereographic_coordinate_system.py
index 09cfde9d5b..a20443005c 100755
--- a/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_polar_stereographic_coordinate_system.py
+++ b/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_polar_stereographic_coordinate_system.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Test function :func:`iris.fileformats._nc_load_rules.helpers.\
build_polar_stereographic_coordinate_system`.
diff --git a/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_stereographic_coordinate_system.py b/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_stereographic_coordinate_system.py
index 3796aeebab..a483390e36 100644
--- a/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_stereographic_coordinate_system.py
+++ b/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_stereographic_coordinate_system.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Test function :func:`iris.fileformats._nc_load_rules.helpers.\
build_sterographic_coordinate_system`.
diff --git a/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_transverse_mercator_coordinate_system.py b/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_transverse_mercator_coordinate_system.py
index 0096c5df4b..ae881259fe 100644
--- a/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_transverse_mercator_coordinate_system.py
+++ b/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_transverse_mercator_coordinate_system.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Test function :func:`iris.fileformats._nc_load_rules.helpers.\
build_transverse_mercator_coordinate_system`.
diff --git a/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_verticalp_coordinate_system.py b/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_verticalp_coordinate_system.py
index f34992c2be..21906ba644 100644
--- a/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_verticalp_coordinate_system.py
+++ b/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_build_verticalp_coordinate_system.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Test function :func:`iris.fileformats._nc_load_rules.helpers.\
build_vertical_perspective_coordinate_system`.
diff --git a/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_get_attr_units.py b/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_get_attr_units.py
index a159ef81a8..d80b33f002 100644
--- a/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_get_attr_units.py
+++ b/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_get_attr_units.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Test function :func:`iris.fileformats._nc_load_rules.helpers.\
get_attr_units`.
diff --git a/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_get_cf_bounds_var.py b/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_get_cf_bounds_var.py
index ff9c51f40b..7d0dc4952c 100644
--- a/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_get_cf_bounds_var.py
+++ b/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_get_cf_bounds_var.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Test function :func:`iris.fileformats._nc_load_rules.helpers.\
get_cf_bounds_var`.
diff --git a/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_get_names.py b/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_get_names.py
index 3c7c496b54..b6a0f3d3c1 100644
--- a/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_get_names.py
+++ b/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_get_names.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Test function :func:`iris.fileformats._nc_load_rules.helpers.\
get_names`.
diff --git a/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_has_supported_mercator_parameters.py b/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_has_supported_mercator_parameters.py
index bb94adc72e..9dc31ba490 100644
--- a/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_has_supported_mercator_parameters.py
+++ b/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_has_supported_mercator_parameters.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Test function :func:`iris.fileformats._nc_load_rules.helpers.\
has_supported_mercator_parameters`.
diff --git a/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_has_supported_polar_stereographic_parameters.py b/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_has_supported_polar_stereographic_parameters.py
index 6e6d6e4e81..faffefd8f2 100755
--- a/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_has_supported_polar_stereographic_parameters.py
+++ b/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_has_supported_polar_stereographic_parameters.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Test function :func:`iris.fileformats._nc_load_rules.helpers.\
has_supported_polar_stereographic_parameters`.
diff --git a/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_parse_cell_methods.py b/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_parse_cell_methods.py
index 9935a6e5ae..a58413d399 100644
--- a/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_parse_cell_methods.py
+++ b/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_parse_cell_methods.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for :func:`iris.fileformats.netcdf.parse_cell_methods`.
diff --git a/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_reorder_bounds_data.py b/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_reorder_bounds_data.py
index 1ee0cfbf2e..1e9d13110e 100644
--- a/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_reorder_bounds_data.py
+++ b/lib/iris/tests/unit/fileformats/nc_load_rules/helpers/test_reorder_bounds_data.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Test function :func:`iris.fileformats._nc_load_rules.helpers.\
reorder_bounds_data`.
diff --git a/lib/iris/tests/unit/fileformats/netcdf/__init__.py b/lib/iris/tests/unit/fileformats/netcdf/__init__.py
index 732094f67a..961f7779a8 100644
--- a/lib/iris/tests/unit/fileformats/netcdf/__init__.py
+++ b/lib/iris/tests/unit/fileformats/netcdf/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris.fileformats.netcdf` module."""
diff --git a/lib/iris/tests/unit/fileformats/netcdf/loader/__init__.py b/lib/iris/tests/unit/fileformats/netcdf/loader/__init__.py
index 7c2ae96158..67d3fe0fc6 100644
--- a/lib/iris/tests/unit/fileformats/netcdf/loader/__init__.py
+++ b/lib/iris/tests/unit/fileformats/netcdf/loader/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris.fileformats.netcdf.loader` module."""
diff --git a/lib/iris/tests/unit/fileformats/netcdf/loader/test__get_cf_var_data.py b/lib/iris/tests/unit/fileformats/netcdf/loader/test__get_cf_var_data.py
index 6c487d74e7..3c3cbff7f4 100644
--- a/lib/iris/tests/unit/fileformats/netcdf/loader/test__get_cf_var_data.py
+++ b/lib/iris/tests/unit/fileformats/netcdf/loader/test__get_cf_var_data.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.fileformats.netcdf._get_cf_var_data` function."""
# Import iris.tests first so that some things can be initialised before
# importing anything else.
diff --git a/lib/iris/tests/unit/fileformats/netcdf/loader/test__load_aux_factory.py b/lib/iris/tests/unit/fileformats/netcdf/loader/test__load_aux_factory.py
index c15c8737fd..01c6838241 100644
--- a/lib/iris/tests/unit/fileformats/netcdf/loader/test__load_aux_factory.py
+++ b/lib/iris/tests/unit/fileformats/netcdf/loader/test__load_aux_factory.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.fileformats.netcdf._load_aux_factory` function."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/fileformats/netcdf/loader/test__load_cube.py b/lib/iris/tests/unit/fileformats/netcdf/loader/test__load_cube.py
index b67c546aa0..25beca8f59 100644
--- a/lib/iris/tests/unit/fileformats/netcdf/loader/test__load_cube.py
+++ b/lib/iris/tests/unit/fileformats/netcdf/loader/test__load_cube.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.fileformats.netcdf._load_cube` function."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/fileformats/netcdf/loader/test__translate_constraints_to_var_callback.py b/lib/iris/tests/unit/fileformats/netcdf/loader/test__translate_constraints_to_var_callback.py
index 77bb0d3950..2522392c21 100644
--- a/lib/iris/tests/unit/fileformats/netcdf/loader/test__translate_constraints_to_var_callback.py
+++ b/lib/iris/tests/unit/fileformats/netcdf/loader/test__translate_constraints_to_var_callback.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for
:func:`iris.fileformats.netcdf._translate_constraints_to_var_callback`.
diff --git a/lib/iris/tests/unit/fileformats/netcdf/loader/test_load_cubes.py b/lib/iris/tests/unit/fileformats/netcdf/loader/test_load_cubes.py
index 1a2ef1d29d..77c1da2d1c 100644
--- a/lib/iris/tests/unit/fileformats/netcdf/loader/test_load_cubes.py
+++ b/lib/iris/tests/unit/fileformats/netcdf/loader/test_load_cubes.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the :func:`iris.fileformats.netcdf.load_cubes` function.
diff --git a/lib/iris/tests/unit/fileformats/netcdf/saver/__init__.py b/lib/iris/tests/unit/fileformats/netcdf/saver/__init__.py
index a68d5fc5d0..53d42128f6 100644
--- a/lib/iris/tests/unit/fileformats/netcdf/saver/__init__.py
+++ b/lib/iris/tests/unit/fileformats/netcdf/saver/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris.fileformats.netcdf.saver` module."""
diff --git a/lib/iris/tests/unit/fileformats/netcdf/saver/test_Saver.py b/lib/iris/tests/unit/fileformats/netcdf/saver/test_Saver.py
index 8253e59368..e4d8488a76 100644
--- a/lib/iris/tests/unit/fileformats/netcdf/saver/test_Saver.py
+++ b/lib/iris/tests/unit/fileformats/netcdf/saver/test_Saver.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :class:`iris.fileformats.netcdf.Saver` class."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/fileformats/netcdf/saver/test_Saver__lazy.py b/lib/iris/tests/unit/fileformats/netcdf/saver/test_Saver__lazy.py
index e1211dc276..2e7091c43b 100644
--- a/lib/iris/tests/unit/fileformats/netcdf/saver/test_Saver__lazy.py
+++ b/lib/iris/tests/unit/fileformats/netcdf/saver/test_Saver__lazy.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Mirror of :mod:`iris.tests.unit.fileformats.netcdf.test_Saver`, but with lazy arrays."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/fileformats/netcdf/saver/test_Saver__lazy_stream_data.py b/lib/iris/tests/unit/fileformats/netcdf/saver/test_Saver__lazy_stream_data.py
index da5f2d88fa..10c5dbecf4 100644
--- a/lib/iris/tests/unit/fileformats/netcdf/saver/test_Saver__lazy_stream_data.py
+++ b/lib/iris/tests/unit/fileformats/netcdf/saver/test_Saver__lazy_stream_data.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for :meth:`iris.fileformats.netcdf.saver.Saver._lazy_stream_data`.
diff --git a/lib/iris/tests/unit/fileformats/netcdf/saver/test_Saver__ugrid.py b/lib/iris/tests/unit/fileformats/netcdf/saver/test_Saver__ugrid.py
index 27d9709fe6..8177e0c299 100644
--- a/lib/iris/tests/unit/fileformats/netcdf/saver/test_Saver__ugrid.py
+++ b/lib/iris/tests/unit/fileformats/netcdf/saver/test_Saver__ugrid.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the :class:`iris.fileformats.netcdf.Saver` class.
diff --git a/lib/iris/tests/unit/fileformats/netcdf/saver/test__data_fillvalue_check.py b/lib/iris/tests/unit/fileformats/netcdf/saver/test__data_fillvalue_check.py
index 95a518e4e5..9068837b2c 100644
--- a/lib/iris/tests/unit/fileformats/netcdf/saver/test__data_fillvalue_check.py
+++ b/lib/iris/tests/unit/fileformats/netcdf/saver/test__data_fillvalue_check.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for :func:`iris.fileformats.netcdf.saver._data_fillvalue_check`.
diff --git a/lib/iris/tests/unit/fileformats/netcdf/saver/test__fillvalue_report.py b/lib/iris/tests/unit/fileformats/netcdf/saver/test__fillvalue_report.py
index 317f75bb8c..42119094a7 100644
--- a/lib/iris/tests/unit/fileformats/netcdf/saver/test__fillvalue_report.py
+++ b/lib/iris/tests/unit/fileformats/netcdf/saver/test__fillvalue_report.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for :func:`iris.fileformats.netcdf.saver._fillvalue_report`.
"""
diff --git a/lib/iris/tests/unit/fileformats/netcdf/saver/test_save.py b/lib/iris/tests/unit/fileformats/netcdf/saver/test_save.py
index 68049b57fc..620bc64461 100644
--- a/lib/iris/tests/unit/fileformats/netcdf/saver/test_save.py
+++ b/lib/iris/tests/unit/fileformats/netcdf/saver/test_save.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :func:`iris.fileformats.netcdf.save` function."""
# Import iris.tests first so that some things can be initialised before
# importing anything else.
diff --git a/lib/iris/tests/unit/fileformats/nimrod_load_rules/__init__.py b/lib/iris/tests/unit/fileformats/nimrod_load_rules/__init__.py
index 429ee9ce1f..928c9d9361 100644
--- a/lib/iris/tests/unit/fileformats/nimrod_load_rules/__init__.py
+++ b/lib/iris/tests/unit/fileformats/nimrod_load_rules/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris.fileformats.nimrod_load_rules` module."""
diff --git a/lib/iris/tests/unit/fileformats/nimrod_load_rules/test_units.py b/lib/iris/tests/unit/fileformats/nimrod_load_rules/test_units.py
index a15337f849..c15a721ad3 100644
--- a/lib/iris/tests/unit/fileformats/nimrod_load_rules/test_units.py
+++ b/lib/iris/tests/unit/fileformats/nimrod_load_rules/test_units.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the `iris.fileformats.nimrod_load_rules.units` function.
diff --git a/lib/iris/tests/unit/fileformats/nimrod_load_rules/test_vertical_coord.py b/lib/iris/tests/unit/fileformats/nimrod_load_rules/test_vertical_coord.py
index 2279bcffc3..4f1b948839 100644
--- a/lib/iris/tests/unit/fileformats/nimrod_load_rules/test_vertical_coord.py
+++ b/lib/iris/tests/unit/fileformats/nimrod_load_rules/test_vertical_coord.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the `iris.fileformats.nimrod_load_rules.vertical_coord`
function.
diff --git a/lib/iris/tests/unit/fileformats/pp/__init__.py b/lib/iris/tests/unit/fileformats/pp/__init__.py
index f309b6848a..7eedc830d9 100644
--- a/lib/iris/tests/unit/fileformats/pp/__init__.py
+++ b/lib/iris/tests/unit/fileformats/pp/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris.fileformats.pp` module."""
diff --git a/lib/iris/tests/unit/fileformats/pp/test_PPDataProxy.py b/lib/iris/tests/unit/fileformats/pp/test_PPDataProxy.py
index d70e573296..4d963e7f08 100644
--- a/lib/iris/tests/unit/fileformats/pp/test_PPDataProxy.py
+++ b/lib/iris/tests/unit/fileformats/pp/test_PPDataProxy.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.fileformats.pp.PPDataProxy` class."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/fileformats/pp/test_PPField.py b/lib/iris/tests/unit/fileformats/pp/test_PPField.py
index f2bbf97a80..1a49f57712 100644
--- a/lib/iris/tests/unit/fileformats/pp/test_PPField.py
+++ b/lib/iris/tests/unit/fileformats/pp/test_PPField.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.fileformats.pp.PPField` class."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/fileformats/pp/test__convert_constraints.py b/lib/iris/tests/unit/fileformats/pp/test__convert_constraints.py
index 514e326393..cca9bb4641 100644
--- a/lib/iris/tests/unit/fileformats/pp/test__convert_constraints.py
+++ b/lib/iris/tests/unit/fileformats/pp/test__convert_constraints.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.fileformats.pp.load` function."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/fileformats/pp/test__create_field_data.py b/lib/iris/tests/unit/fileformats/pp/test__create_field_data.py
index 16d2b500a5..ab80332186 100644
--- a/lib/iris/tests/unit/fileformats/pp/test__create_field_data.py
+++ b/lib/iris/tests/unit/fileformats/pp/test__create_field_data.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.fileformats.pp._create_field_data` function."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/fileformats/pp/test__data_bytes_to_shaped_array.py b/lib/iris/tests/unit/fileformats/pp/test__data_bytes_to_shaped_array.py
index 73913c6219..45635af391 100644
--- a/lib/iris/tests/unit/fileformats/pp/test__data_bytes_to_shaped_array.py
+++ b/lib/iris/tests/unit/fileformats/pp/test__data_bytes_to_shaped_array.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the `iris.fileformats.pp._data_bytes_to_shaped_array` function.
diff --git a/lib/iris/tests/unit/fileformats/pp/test__field_gen.py b/lib/iris/tests/unit/fileformats/pp/test__field_gen.py
index 31ac4f6b19..80b90fc8d2 100644
--- a/lib/iris/tests/unit/fileformats/pp/test__field_gen.py
+++ b/lib/iris/tests/unit/fileformats/pp/test__field_gen.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.fileformats.pp._field_gen` function."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/fileformats/pp/test__interpret_field.py b/lib/iris/tests/unit/fileformats/pp/test__interpret_field.py
index 0b83cade76..aa03c068ce 100644
--- a/lib/iris/tests/unit/fileformats/pp/test__interpret_field.py
+++ b/lib/iris/tests/unit/fileformats/pp/test__interpret_field.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.fileformats.pp._interpret_field` function."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/fileformats/pp/test_as_fields.py b/lib/iris/tests/unit/fileformats/pp/test_as_fields.py
index 3ff228e106..213eb6c9c4 100644
--- a/lib/iris/tests/unit/fileformats/pp/test_as_fields.py
+++ b/lib/iris/tests/unit/fileformats/pp/test_as_fields.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.fileformats.pp.as_fields` function."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/fileformats/pp/test_load.py b/lib/iris/tests/unit/fileformats/pp/test_load.py
index 77da1288c2..e802b36c0e 100644
--- a/lib/iris/tests/unit/fileformats/pp/test_load.py
+++ b/lib/iris/tests/unit/fileformats/pp/test_load.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.fileformats.pp.load` function."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/fileformats/pp/test_save.py b/lib/iris/tests/unit/fileformats/pp/test_save.py
index 8200259cca..fc0535f428 100644
--- a/lib/iris/tests/unit/fileformats/pp/test_save.py
+++ b/lib/iris/tests/unit/fileformats/pp/test_save.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.fileformats.pp.save` function."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/fileformats/pp/test_save_fields.py b/lib/iris/tests/unit/fileformats/pp/test_save_fields.py
index fdd470cb47..2eaebc0059 100644
--- a/lib/iris/tests/unit/fileformats/pp/test_save_fields.py
+++ b/lib/iris/tests/unit/fileformats/pp/test_save_fields.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.fileformats.pp.save_fields` function."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/fileformats/pp/test_save_pairs_from_cube.py b/lib/iris/tests/unit/fileformats/pp/test_save_pairs_from_cube.py
index cdd3c9cd49..5ab3f7c480 100644
--- a/lib/iris/tests/unit/fileformats/pp/test_save_pairs_from_cube.py
+++ b/lib/iris/tests/unit/fileformats/pp/test_save_pairs_from_cube.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.fileformats.pp.save_pairs_from_cube` function."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/fileformats/pp_load_rules/__init__.py b/lib/iris/tests/unit/fileformats/pp_load_rules/__init__.py
index 70d28f7c09..c8361feae4 100644
--- a/lib/iris/tests/unit/fileformats/pp_load_rules/__init__.py
+++ b/lib/iris/tests/unit/fileformats/pp_load_rules/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris.fileformats.pp_load_rules` module."""
diff --git a/lib/iris/tests/unit/fileformats/pp_load_rules/test__all_other_rules.py b/lib/iris/tests/unit/fileformats/pp_load_rules/test__all_other_rules.py
index e194e240c6..591bfda857 100644
--- a/lib/iris/tests/unit/fileformats/pp_load_rules/test__all_other_rules.py
+++ b/lib/iris/tests/unit/fileformats/pp_load_rules/test__all_other_rules.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the `iris.fileformats.pp_load_rules._all_other_rules` function.
diff --git a/lib/iris/tests/unit/fileformats/pp_load_rules/test__collapse_degenerate_points_and_bounds.py b/lib/iris/tests/unit/fileformats/pp_load_rules/test__collapse_degenerate_points_and_bounds.py
index c9c4821e0a..c87e199956 100644
--- a/lib/iris/tests/unit/fileformats/pp_load_rules/test__collapse_degenerate_points_and_bounds.py
+++ b/lib/iris/tests/unit/fileformats/pp_load_rules/test__collapse_degenerate_points_and_bounds.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for
:func:`iris.fileformats.pp_load_rules._collapse_degenerate_points_and_bounds`.
diff --git a/lib/iris/tests/unit/fileformats/pp_load_rules/test__convert_scalar_pseudo_level_coords.py b/lib/iris/tests/unit/fileformats/pp_load_rules/test__convert_scalar_pseudo_level_coords.py
index d3046ee63e..803e47227f 100644
--- a/lib/iris/tests/unit/fileformats/pp_load_rules/test__convert_scalar_pseudo_level_coords.py
+++ b/lib/iris/tests/unit/fileformats/pp_load_rules/test__convert_scalar_pseudo_level_coords.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for
:func:`iris.fileformats.pp_load_rules._convert_pseudo_level_coords`.
diff --git a/lib/iris/tests/unit/fileformats/pp_load_rules/test__convert_scalar_realization_coords.py b/lib/iris/tests/unit/fileformats/pp_load_rules/test__convert_scalar_realization_coords.py
index 759a399dad..6159a1dbd4 100644
--- a/lib/iris/tests/unit/fileformats/pp_load_rules/test__convert_scalar_realization_coords.py
+++ b/lib/iris/tests/unit/fileformats/pp_load_rules/test__convert_scalar_realization_coords.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for
:func:`iris.fileformats.pp_load_rules._convert_scalar_realization_coords`.
diff --git a/lib/iris/tests/unit/fileformats/pp_load_rules/test__convert_time_coords.py b/lib/iris/tests/unit/fileformats/pp_load_rules/test__convert_time_coords.py
index cf147e5928..5afaeee45d 100644
--- a/lib/iris/tests/unit/fileformats/pp_load_rules/test__convert_time_coords.py
+++ b/lib/iris/tests/unit/fileformats/pp_load_rules/test__convert_time_coords.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for
:func:`iris.fileformats.pp_load_rules._convert_time_coords`.
diff --git a/lib/iris/tests/unit/fileformats/pp_load_rules/test__convert_vertical_coords.py b/lib/iris/tests/unit/fileformats/pp_load_rules/test__convert_vertical_coords.py
index 47552a646a..a7ed6355f6 100644
--- a/lib/iris/tests/unit/fileformats/pp_load_rules/test__convert_vertical_coords.py
+++ b/lib/iris/tests/unit/fileformats/pp_load_rules/test__convert_vertical_coords.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for
:func:`iris.fileformats.pp_load_rules._convert_vertical_coords`.
diff --git a/lib/iris/tests/unit/fileformats/pp_load_rules/test__dim_or_aux.py b/lib/iris/tests/unit/fileformats/pp_load_rules/test__dim_or_aux.py
index 7769ca1de1..176d0a38a1 100644
--- a/lib/iris/tests/unit/fileformats/pp_load_rules/test__dim_or_aux.py
+++ b/lib/iris/tests/unit/fileformats/pp_load_rules/test__dim_or_aux.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for :func:`iris.fileformats.pp_load_rules._dim_or_aux`."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/fileformats/pp_load_rules/test__epoch_date_hours.py b/lib/iris/tests/unit/fileformats/pp_load_rules/test__epoch_date_hours.py
index 2c5d672e14..2724d45871 100644
--- a/lib/iris/tests/unit/fileformats/pp_load_rules/test__epoch_date_hours.py
+++ b/lib/iris/tests/unit/fileformats/pp_load_rules/test__epoch_date_hours.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for
:func:`iris.fileformats.pp_load_rules._epoch_date_hours`.
diff --git a/lib/iris/tests/unit/fileformats/pp_load_rules/test__model_level_number.py b/lib/iris/tests/unit/fileformats/pp_load_rules/test__model_level_number.py
index fa381b91c1..c99de5bc34 100644
--- a/lib/iris/tests/unit/fileformats/pp_load_rules/test__model_level_number.py
+++ b/lib/iris/tests/unit/fileformats/pp_load_rules/test__model_level_number.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for :func:`iris.fileformats.pp_load_rules._model_level_number`.
diff --git a/lib/iris/tests/unit/fileformats/pp_load_rules/test__reduced_points_and_bounds.py b/lib/iris/tests/unit/fileformats/pp_load_rules/test__reduced_points_and_bounds.py
index fc30f66f7f..a33128f39b 100644
--- a/lib/iris/tests/unit/fileformats/pp_load_rules/test__reduced_points_and_bounds.py
+++ b/lib/iris/tests/unit/fileformats/pp_load_rules/test__reduced_points_and_bounds.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for
:func:`iris.fileformats.pp_load_rules._reduce_points_and_bounds`.
diff --git a/lib/iris/tests/unit/fileformats/pp_load_rules/test__reshape_vector_args.py b/lib/iris/tests/unit/fileformats/pp_load_rules/test__reshape_vector_args.py
index 4e6d50fea7..d12a718e98 100644
--- a/lib/iris/tests/unit/fileformats/pp_load_rules/test__reshape_vector_args.py
+++ b/lib/iris/tests/unit/fileformats/pp_load_rules/test__reshape_vector_args.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for
:func:`iris.fileformats.pp_load_rules._reshape_vector_args`.
diff --git a/lib/iris/tests/unit/fileformats/pp_load_rules/test_convert.py b/lib/iris/tests/unit/fileformats/pp_load_rules/test_convert.py
index 569d676183..0b46d11f9d 100644
--- a/lib/iris/tests/unit/fileformats/pp_load_rules/test_convert.py
+++ b/lib/iris/tests/unit/fileformats/pp_load_rules/test_convert.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for :func:`iris.fileformats.pp_load_rules.convert`."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/fileformats/rules/__init__.py b/lib/iris/tests/unit/fileformats/rules/__init__.py
index 55c9c7779e..1b14a8b07b 100644
--- a/lib/iris/tests/unit/fileformats/rules/__init__.py
+++ b/lib/iris/tests/unit/fileformats/rules/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris.fileformats.rules` module."""
diff --git a/lib/iris/tests/unit/fileformats/rules/test_Loader.py b/lib/iris/tests/unit/fileformats/rules/test_Loader.py
index be96f526d2..b99d1e6f40 100644
--- a/lib/iris/tests/unit/fileformats/rules/test_Loader.py
+++ b/lib/iris/tests/unit/fileformats/rules/test_Loader.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for :class:`iris.fileformats.rules.Loader`."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/fileformats/rules/test__make_cube.py b/lib/iris/tests/unit/fileformats/rules/test__make_cube.py
index b6c4528399..91862658e5 100644
--- a/lib/iris/tests/unit/fileformats/rules/test__make_cube.py
+++ b/lib/iris/tests/unit/fileformats/rules/test__make_cube.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for :func:`iris.fileformats.rules._make_cube`."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/fileformats/structured_array_identification/__init__.py b/lib/iris/tests/unit/fileformats/structured_array_identification/__init__.py
index c703284fc0..8a0a9a38d7 100644
--- a/lib/iris/tests/unit/fileformats/structured_array_identification/__init__.py
+++ b/lib/iris/tests/unit/fileformats/structured_array_identification/__init__.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the
:mod:`iris.fileformats._structured_array_identification` module.
diff --git a/lib/iris/tests/unit/fileformats/structured_array_identification/test_ArrayStructure.py b/lib/iris/tests/unit/fileformats/structured_array_identification/test_ArrayStructure.py
index 871aab4f1e..9f5466afaa 100644
--- a/lib/iris/tests/unit/fileformats/structured_array_identification/test_ArrayStructure.py
+++ b/lib/iris/tests/unit/fileformats/structured_array_identification/test_ArrayStructure.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the
:mod:`iris.fileformats._structured_array_identification.ArrayStructure` class.
diff --git a/lib/iris/tests/unit/fileformats/structured_array_identification/test_GroupStructure.py b/lib/iris/tests/unit/fileformats/structured_array_identification/test_GroupStructure.py
index a7818ad802..ec98664f51 100644
--- a/lib/iris/tests/unit/fileformats/structured_array_identification/test_GroupStructure.py
+++ b/lib/iris/tests/unit/fileformats/structured_array_identification/test_GroupStructure.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the
:mod:`iris.fileformats._structured_array_identification.GroupStructure` class.
diff --git a/lib/iris/tests/unit/fileformats/test_rules.py b/lib/iris/tests/unit/fileformats/test_rules.py
index c243a374cb..b7e17b205e 100644
--- a/lib/iris/tests/unit/fileformats/test_rules.py
+++ b/lib/iris/tests/unit/fileformats/test_rules.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Test iris.fileformats.rules.py - metadata translation rules.
diff --git a/lib/iris/tests/unit/fileformats/um/__init__.py b/lib/iris/tests/unit/fileformats/um/__init__.py
index 6b4abc61bb..6652c6d543 100644
--- a/lib/iris/tests/unit/fileformats/um/__init__.py
+++ b/lib/iris/tests/unit/fileformats/um/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.fileformats.um` package."""
diff --git a/lib/iris/tests/unit/fileformats/um/fast_load/__init__.py b/lib/iris/tests/unit/fileformats/um/fast_load/__init__.py
index b5eb259e5b..f2c18b5f8a 100644
--- a/lib/iris/tests/unit/fileformats/um/fast_load/__init__.py
+++ b/lib/iris/tests/unit/fileformats/um/fast_load/__init__.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the module :mod:`iris.fileformats.um._fast_load`.
diff --git a/lib/iris/tests/unit/fileformats/um/fast_load/test_FieldCollation.py b/lib/iris/tests/unit/fileformats/um/fast_load/test_FieldCollation.py
index 0c15e5e839..930050813f 100644
--- a/lib/iris/tests/unit/fileformats/um/fast_load/test_FieldCollation.py
+++ b/lib/iris/tests/unit/fileformats/um/fast_load/test_FieldCollation.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the class
:class:`iris.fileformats.um._fast_load.FieldCollation`.
diff --git a/lib/iris/tests/unit/fileformats/um/fast_load/test__convert_collation.py b/lib/iris/tests/unit/fileformats/um/fast_load/test__convert_collation.py
index 90c411b41d..f6e3fd5928 100644
--- a/lib/iris/tests/unit/fileformats/um/fast_load/test__convert_collation.py
+++ b/lib/iris/tests/unit/fileformats/um/fast_load/test__convert_collation.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for :func:`iris.fileformats.um._fast_load._convert_collation`."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/fileformats/um/fast_load_structured_fields/__init__.py b/lib/iris/tests/unit/fileformats/um/fast_load_structured_fields/__init__.py
index f0932c3ac8..c26382aca9 100644
--- a/lib/iris/tests/unit/fileformats/um/fast_load_structured_fields/__init__.py
+++ b/lib/iris/tests/unit/fileformats/um/fast_load_structured_fields/__init__.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the module
:mod:`iris.fileformats.um._fast_load_structured_fields`.
diff --git a/lib/iris/tests/unit/fileformats/um/fast_load_structured_fields/test_BasicFieldCollation.py b/lib/iris/tests/unit/fileformats/um/fast_load_structured_fields/test_BasicFieldCollation.py
index 57100c79af..19c64ec57a 100644
--- a/lib/iris/tests/unit/fileformats/um/fast_load_structured_fields/test_BasicFieldCollation.py
+++ b/lib/iris/tests/unit/fileformats/um/fast_load_structured_fields/test_BasicFieldCollation.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the class
:class:`iris.fileformats.um._fast_load_structured_fields.BasicFieldCollation`.
diff --git a/lib/iris/tests/unit/fileformats/um/fast_load_structured_fields/test_group_structured_fields.py b/lib/iris/tests/unit/fileformats/um/fast_load_structured_fields/test_group_structured_fields.py
index b7ef9a62a3..75b54dfd4f 100644
--- a/lib/iris/tests/unit/fileformats/um/fast_load_structured_fields/test_group_structured_fields.py
+++ b/lib/iris/tests/unit/fileformats/um/fast_load_structured_fields/test_group_structured_fields.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the function :func:\
`iris.fileformats.um._fast_load_structured_fields.group_structured_fields`.
diff --git a/lib/iris/tests/unit/fileformats/um/optimal_array_structuring/__init__.py b/lib/iris/tests/unit/fileformats/um/optimal_array_structuring/__init__.py
index 8070719de8..5a72973519 100644
--- a/lib/iris/tests/unit/fileformats/um/optimal_array_structuring/__init__.py
+++ b/lib/iris/tests/unit/fileformats/um/optimal_array_structuring/__init__.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the module
:mod:`iris.fileformats.um._optimal_array_structuring`.
diff --git a/lib/iris/tests/unit/fileformats/um/optimal_array_structuring/test_optimal_array_structure.py b/lib/iris/tests/unit/fileformats/um/optimal_array_structuring/test_optimal_array_structure.py
index 96566f3c80..92a8b19ec0 100644
--- a/lib/iris/tests/unit/fileformats/um/optimal_array_structuring/test_optimal_array_structure.py
+++ b/lib/iris/tests/unit/fileformats/um/optimal_array_structuring/test_optimal_array_structure.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the function
:func:`iris.fileformats.um._optimal_array_structuring.optimal_array_structure`.
diff --git a/lib/iris/tests/unit/fileformats/um/test_um_to_pp.py b/lib/iris/tests/unit/fileformats/um/test_um_to_pp.py
index ef6369f638..40ac6826d3 100644
--- a/lib/iris/tests/unit/fileformats/um/test_um_to_pp.py
+++ b/lib/iris/tests/unit/fileformats/um/test_um_to_pp.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the function
:func:`iris.fileformats.um.um_to_pp`.
diff --git a/lib/iris/tests/unit/io/__init__.py b/lib/iris/tests/unit/io/__init__.py
index 5e347c9ebc..1a11fe5d30 100644
--- a/lib/iris/tests/unit/io/__init__.py
+++ b/lib/iris/tests/unit/io/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris.io` package."""
diff --git a/lib/iris/tests/unit/io/test__generate_cubes.py b/lib/iris/tests/unit/io/test__generate_cubes.py
index 3a896a111c..96d790db2d 100755
--- a/lib/iris/tests/unit/io/test__generate_cubes.py
+++ b/lib/iris/tests/unit/io/test__generate_cubes.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.io._generate_cubes` function."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/io/test_expand_filespecs.py b/lib/iris/tests/unit/io/test_expand_filespecs.py
index 8720478153..bd5e5933a3 100644
--- a/lib/iris/tests/unit/io/test_expand_filespecs.py
+++ b/lib/iris/tests/unit/io/test_expand_filespecs.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.io.expand_filespecs` function."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/io/test_run_callback.py b/lib/iris/tests/unit/io/test_run_callback.py
index 94ae7ac09d..cd55743b29 100644
--- a/lib/iris/tests/unit/io/test_run_callback.py
+++ b/lib/iris/tests/unit/io/test_run_callback.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.io.run_callback` function."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/io/test_save.py b/lib/iris/tests/unit/io/test_save.py
index 623cf417f2..cec125d0fe 100755
--- a/lib/iris/tests/unit/io/test_save.py
+++ b/lib/iris/tests/unit/io/test_save.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.io.save` function."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/lazy_data/__init__.py b/lib/iris/tests/unit/lazy_data/__init__.py
index b463897c50..55920077f3 100644
--- a/lib/iris/tests/unit/lazy_data/__init__.py
+++ b/lib/iris/tests/unit/lazy_data/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris._lazy_data` module."""
diff --git a/lib/iris/tests/unit/lazy_data/test_as_concrete_data.py b/lib/iris/tests/unit/lazy_data/test_as_concrete_data.py
index 1a98c81fac..91b22a3c0e 100644
--- a/lib/iris/tests/unit/lazy_data/test_as_concrete_data.py
+++ b/lib/iris/tests/unit/lazy_data/test_as_concrete_data.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Test function :func:`iris._lazy data.as_concrete_data`."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/lazy_data/test_as_lazy_data.py b/lib/iris/tests/unit/lazy_data/test_as_lazy_data.py
index 5f9dece153..0acb085830 100644
--- a/lib/iris/tests/unit/lazy_data/test_as_lazy_data.py
+++ b/lib/iris/tests/unit/lazy_data/test_as_lazy_data.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Test the function :func:`iris._lazy data.as_lazy_data`."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/lazy_data/test_co_realise_cubes.py b/lib/iris/tests/unit/lazy_data/test_co_realise_cubes.py
index 0c10d69c16..3b265d615d 100644
--- a/lib/iris/tests/unit/lazy_data/test_co_realise_cubes.py
+++ b/lib/iris/tests/unit/lazy_data/test_co_realise_cubes.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Test function :func:`iris._lazy data.co_realise_cubes`."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/lazy_data/test_is_lazy_data.py b/lib/iris/tests/unit/lazy_data/test_is_lazy_data.py
index 45b3194f32..a8018c67b1 100644
--- a/lib/iris/tests/unit/lazy_data/test_is_lazy_data.py
+++ b/lib/iris/tests/unit/lazy_data/test_is_lazy_data.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Test function :func:`iris._lazy data.is_lazy_data`."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/lazy_data/test_is_lazy_masked_data.py b/lib/iris/tests/unit/lazy_data/test_is_lazy_masked_data.py
index 4d627a706b..6466ab0ea2 100644
--- a/lib/iris/tests/unit/lazy_data/test_is_lazy_masked_data.py
+++ b/lib/iris/tests/unit/lazy_data/test_is_lazy_masked_data.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Test function :func:`iris._lazy data.is_lazy_masked_data`."""
import dask.array as da
diff --git a/lib/iris/tests/unit/lazy_data/test_lazy_elementwise.py b/lib/iris/tests/unit/lazy_data/test_lazy_elementwise.py
index 49fd6ad70b..651a774c4d 100644
--- a/lib/iris/tests/unit/lazy_data/test_lazy_elementwise.py
+++ b/lib/iris/tests/unit/lazy_data/test_lazy_elementwise.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Test function :func:`iris._lazy data.lazy_elementwise`."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/lazy_data/test_map_complete_blocks.py b/lib/iris/tests/unit/lazy_data/test_map_complete_blocks.py
index 66c03d04c8..1c694d292b 100644
--- a/lib/iris/tests/unit/lazy_data/test_map_complete_blocks.py
+++ b/lib/iris/tests/unit/lazy_data/test_map_complete_blocks.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Test function :func:`iris._lazy data.map_complete_blocks`."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/lazy_data/test_multidim_lazy_stack.py b/lib/iris/tests/unit/lazy_data/test_multidim_lazy_stack.py
index 9fe79a0d4c..993cb01178 100644
--- a/lib/iris/tests/unit/lazy_data/test_multidim_lazy_stack.py
+++ b/lib/iris/tests/unit/lazy_data/test_multidim_lazy_stack.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Test function :func:`iris._lazy data.multidim_lazy_stack`."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/lazy_data/test_non_lazy.py b/lib/iris/tests/unit/lazy_data/test_non_lazy.py
index cc4ed33ea3..3c6bb99e0a 100644
--- a/lib/iris/tests/unit/lazy_data/test_non_lazy.py
+++ b/lib/iris/tests/unit/lazy_data/test_non_lazy.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Test function :func:`iris._lazy data.non_lazy`."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/merge/__init__.py b/lib/iris/tests/unit/merge/__init__.py
index c3ead61576..14ef96573f 100644
--- a/lib/iris/tests/unit/merge/__init__.py
+++ b/lib/iris/tests/unit/merge/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris._merge` module."""
diff --git a/lib/iris/tests/unit/merge/test_ProtoCube.py b/lib/iris/tests/unit/merge/test_ProtoCube.py
index 0fca726b28..80f135e108 100644
--- a/lib/iris/tests/unit/merge/test_ProtoCube.py
+++ b/lib/iris/tests/unit/merge/test_ProtoCube.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris._merge.ProtoCube` class."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/pandas/__init__.py b/lib/iris/tests/unit/pandas/__init__.py
index 103a264839..2ee1fb1cfe 100644
--- a/lib/iris/tests/unit/pandas/__init__.py
+++ b/lib/iris/tests/unit/pandas/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris.pandas` module."""
diff --git a/lib/iris/tests/unit/pandas/test_pandas.py b/lib/iris/tests/unit/pandas/test_pandas.py
index d74d7cad9c..6f617439db 100644
--- a/lib/iris/tests/unit/pandas/test_pandas.py
+++ b/lib/iris/tests/unit/pandas/test_pandas.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""All unit tests for the :mod:`iris.pandas` module."""
# import iris tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/plot/__init__.py b/lib/iris/tests/unit/plot/__init__.py
index f589a29e0d..7481cdafa3 100644
--- a/lib/iris/tests/unit/plot/__init__.py
+++ b/lib/iris/tests/unit/plot/__init__.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris.plot` module."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/plot/_blockplot_common.py b/lib/iris/tests/unit/plot/_blockplot_common.py
index 455b416164..e3e88304fa 100644
--- a/lib/iris/tests/unit/plot/_blockplot_common.py
+++ b/lib/iris/tests/unit/plot/_blockplot_common.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Common test code for `iris.plot.pcolor` and `iris.plot.pcolormesh`."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/plot/test__check_bounds_contiguity_and_mask.py b/lib/iris/tests/unit/plot/test__check_bounds_contiguity_and_mask.py
index 4dfc6d7f68..3e25f0aadb 100644
--- a/lib/iris/tests/unit/plot/test__check_bounds_contiguity_and_mask.py
+++ b/lib/iris/tests/unit/plot/test__check_bounds_contiguity_and_mask.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.plot._check_bounds_contiguity_and_mask`
function."""
diff --git a/lib/iris/tests/unit/plot/test__check_geostationary_coords_and_convert.py b/lib/iris/tests/unit/plot/test__check_geostationary_coords_and_convert.py
index a06a437396..cfbb15cdef 100644
--- a/lib/iris/tests/unit/plot/test__check_geostationary_coords_and_convert.py
+++ b/lib/iris/tests/unit/plot/test__check_geostationary_coords_and_convert.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.plot._check_geostationary_coords_and_convert
function."""
diff --git a/lib/iris/tests/unit/plot/test__fixup_dates.py b/lib/iris/tests/unit/plot/test__fixup_dates.py
index 0abef01e41..d155f30969 100644
--- a/lib/iris/tests/unit/plot/test__fixup_dates.py
+++ b/lib/iris/tests/unit/plot/test__fixup_dates.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.plot._fixup_dates` function."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/plot/test__get_plot_defn.py b/lib/iris/tests/unit/plot/test__get_plot_defn.py
index c69173dc70..512dc7f0b2 100644
--- a/lib/iris/tests/unit/plot/test__get_plot_defn.py
+++ b/lib/iris/tests/unit/plot/test__get_plot_defn.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.plot._get_plot_defn` function."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/plot/test__get_plot_defn_custom_coords_picked.py b/lib/iris/tests/unit/plot/test__get_plot_defn_custom_coords_picked.py
index 631f9bd24e..dcd8fac9e1 100644
--- a/lib/iris/tests/unit/plot/test__get_plot_defn_custom_coords_picked.py
+++ b/lib/iris/tests/unit/plot/test__get_plot_defn_custom_coords_picked.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.plot._get_plot_defn_custom_coords_picked`
function."""
diff --git a/lib/iris/tests/unit/plot/test__get_plot_objects.py b/lib/iris/tests/unit/plot/test__get_plot_objects.py
index 8586faa756..fbccbe94fb 100644
--- a/lib/iris/tests/unit/plot/test__get_plot_objects.py
+++ b/lib/iris/tests/unit/plot/test__get_plot_objects.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.plot._get_plot_objects` function."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/plot/test__replace_axes_with_cartopy_axes.py b/lib/iris/tests/unit/plot/test__replace_axes_with_cartopy_axes.py
index 8e2d4f226b..8d4054b35a 100644
--- a/lib/iris/tests/unit/plot/test__replace_axes_with_cartopy_axes.py
+++ b/lib/iris/tests/unit/plot/test__replace_axes_with_cartopy_axes.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.plot.__replace_axes_with_cartopy_axes` function."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/plot/test_contour.py b/lib/iris/tests/unit/plot/test_contour.py
index 823b3270d0..43c0564ff4 100644
--- a/lib/iris/tests/unit/plot/test_contour.py
+++ b/lib/iris/tests/unit/plot/test_contour.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.plot.contour` function."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/plot/test_contourf.py b/lib/iris/tests/unit/plot/test_contourf.py
index de84e88a52..64ab87f879 100644
--- a/lib/iris/tests/unit/plot/test_contourf.py
+++ b/lib/iris/tests/unit/plot/test_contourf.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.plot.contourf` function."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/plot/test_hist.py b/lib/iris/tests/unit/plot/test_hist.py
index 8a74ff8701..feef8f1062 100644
--- a/lib/iris/tests/unit/plot/test_hist.py
+++ b/lib/iris/tests/unit/plot/test_hist.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.plot.hist` function."""
# Import iris.tests first so that some things can be initialised before
# importing anything else.
diff --git a/lib/iris/tests/unit/plot/test_outline.py b/lib/iris/tests/unit/plot/test_outline.py
index de59287362..dc1b27487b 100644
--- a/lib/iris/tests/unit/plot/test_outline.py
+++ b/lib/iris/tests/unit/plot/test_outline.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.plot.outline` function."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/plot/test_pcolor.py b/lib/iris/tests/unit/plot/test_pcolor.py
index 1cde9e8822..219df4d446 100644
--- a/lib/iris/tests/unit/plot/test_pcolor.py
+++ b/lib/iris/tests/unit/plot/test_pcolor.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.plot.pcolor` function."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/plot/test_pcolormesh.py b/lib/iris/tests/unit/plot/test_pcolormesh.py
index f4e84e5765..a5525770f2 100644
--- a/lib/iris/tests/unit/plot/test_pcolormesh.py
+++ b/lib/iris/tests/unit/plot/test_pcolormesh.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.plot.pcolormesh` function."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/plot/test_plot.py b/lib/iris/tests/unit/plot/test_plot.py
index 1ed2da1b13..db33862a7e 100644
--- a/lib/iris/tests/unit/plot/test_plot.py
+++ b/lib/iris/tests/unit/plot/test_plot.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.plot.plot` function."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/plot/test_points.py b/lib/iris/tests/unit/plot/test_points.py
index e1a23eff83..0d713e3d84 100644
--- a/lib/iris/tests/unit/plot/test_points.py
+++ b/lib/iris/tests/unit/plot/test_points.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.plot.points` function."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/plot/test_scatter.py b/lib/iris/tests/unit/plot/test_scatter.py
index c5cd9cb2f2..f3b2ec1592 100644
--- a/lib/iris/tests/unit/plot/test_scatter.py
+++ b/lib/iris/tests/unit/plot/test_scatter.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.plot.scatter` function."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/quickplot/__init__.py b/lib/iris/tests/unit/quickplot/__init__.py
index 471ef0f6a5..1ce65d9647 100644
--- a/lib/iris/tests/unit/quickplot/__init__.py
+++ b/lib/iris/tests/unit/quickplot/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris.quickplot` module."""
diff --git a/lib/iris/tests/unit/quickplot/test_contour.py b/lib/iris/tests/unit/quickplot/test_contour.py
index 8e3db7c3e0..2f3bb1a45d 100644
--- a/lib/iris/tests/unit/quickplot/test_contour.py
+++ b/lib/iris/tests/unit/quickplot/test_contour.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.quickplot.contour` function."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/quickplot/test_contourf.py b/lib/iris/tests/unit/quickplot/test_contourf.py
index e510e661ae..55c9940821 100644
--- a/lib/iris/tests/unit/quickplot/test_contourf.py
+++ b/lib/iris/tests/unit/quickplot/test_contourf.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.quickplot.contourf` function."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/quickplot/test_outline.py b/lib/iris/tests/unit/quickplot/test_outline.py
index 70d96372fa..4dd924b749 100644
--- a/lib/iris/tests/unit/quickplot/test_outline.py
+++ b/lib/iris/tests/unit/quickplot/test_outline.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.quickplot.outline` function."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/quickplot/test_pcolor.py b/lib/iris/tests/unit/quickplot/test_pcolor.py
index 2e559d6308..79f6904e12 100644
--- a/lib/iris/tests/unit/quickplot/test_pcolor.py
+++ b/lib/iris/tests/unit/quickplot/test_pcolor.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.quickplot.pcolor` function."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/quickplot/test_pcolormesh.py b/lib/iris/tests/unit/quickplot/test_pcolormesh.py
index 32ae3ed716..826f0e7121 100644
--- a/lib/iris/tests/unit/quickplot/test_pcolormesh.py
+++ b/lib/iris/tests/unit/quickplot/test_pcolormesh.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.quickplot.pcolormesh` function."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/quickplot/test_plot.py b/lib/iris/tests/unit/quickplot/test_plot.py
index 0a36a3fa4e..35e1eae470 100644
--- a/lib/iris/tests/unit/quickplot/test_plot.py
+++ b/lib/iris/tests/unit/quickplot/test_plot.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.quickplot.plot` function."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/quickplot/test_points.py b/lib/iris/tests/unit/quickplot/test_points.py
index 3810cdd343..b28c37bf87 100644
--- a/lib/iris/tests/unit/quickplot/test_points.py
+++ b/lib/iris/tests/unit/quickplot/test_points.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.quickplot.points` function."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/quickplot/test_scatter.py b/lib/iris/tests/unit/quickplot/test_scatter.py
index c1cf853970..db3e9948a0 100644
--- a/lib/iris/tests/unit/quickplot/test_scatter.py
+++ b/lib/iris/tests/unit/quickplot/test_scatter.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.quickplot.scatter` function."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/representation/__init__.py b/lib/iris/tests/unit/representation/__init__.py
index e943ad149b..19824735c1 100644
--- a/lib/iris/tests/unit/representation/__init__.py
+++ b/lib/iris/tests/unit/representation/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris._representation` module."""
diff --git a/lib/iris/tests/unit/representation/cube_printout/__init__.py b/lib/iris/tests/unit/representation/cube_printout/__init__.py
index 50ab3f8e45..15e84606db 100644
--- a/lib/iris/tests/unit/representation/cube_printout/__init__.py
+++ b/lib/iris/tests/unit/representation/cube_printout/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris._representation.cube_printout` module."""
diff --git a/lib/iris/tests/unit/representation/cube_printout/test_CubePrintout.py b/lib/iris/tests/unit/representation/cube_printout/test_CubePrintout.py
index 65fb115243..20d5c47e01 100644
--- a/lib/iris/tests/unit/representation/cube_printout/test_CubePrintout.py
+++ b/lib/iris/tests/unit/representation/cube_printout/test_CubePrintout.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for :class:`iris._representation.cube_printout.CubePrintout`."""
import iris.tests as tests # isort:skip
diff --git a/lib/iris/tests/unit/representation/cube_printout/test_Table.py b/lib/iris/tests/unit/representation/cube_printout/test_Table.py
index e5dba52c61..ff9b6cf51b 100644
--- a/lib/iris/tests/unit/representation/cube_printout/test_Table.py
+++ b/lib/iris/tests/unit/representation/cube_printout/test_Table.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for :class:`iris._representation.cube_printout.Table`."""
from iris._representation.cube_printout import Table
import iris.tests as tests
diff --git a/lib/iris/tests/unit/representation/cube_summary/__init__.py b/lib/iris/tests/unit/representation/cube_summary/__init__.py
index c20a621ba2..684221e6d2 100644
--- a/lib/iris/tests/unit/representation/cube_summary/__init__.py
+++ b/lib/iris/tests/unit/representation/cube_summary/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris._representation.cube_summary` module."""
diff --git a/lib/iris/tests/unit/representation/cube_summary/test_CubeSummary.py b/lib/iris/tests/unit/representation/cube_summary/test_CubeSummary.py
index d81f680df5..1280c3b38f 100644
--- a/lib/iris/tests/unit/representation/cube_summary/test_CubeSummary.py
+++ b/lib/iris/tests/unit/representation/cube_summary/test_CubeSummary.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for :class:`iris._representation.cube_summary.CubeSummary`."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/test_Future.py b/lib/iris/tests/unit/test_Future.py
index f0c161b0c4..00f6b82519 100644
--- a/lib/iris/tests/unit/test_Future.py
+++ b/lib/iris/tests/unit/test_Future.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.Future` class."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/test_sample_data_path.py b/lib/iris/tests/unit/test_sample_data_path.py
index ebf3b8108c..aff2c1088f 100644
--- a/lib/iris/tests/unit/test_sample_data_path.py
+++ b/lib/iris/tests/unit/test_sample_data_path.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for :func:`iris.sample_data_path` class."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/tests/__init__.py b/lib/iris/tests/unit/tests/__init__.py
index b8d27d34d3..b0c801b816 100644
--- a/lib/iris/tests/unit/tests/__init__.py
+++ b/lib/iris/tests/unit/tests/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris.tests` package."""
diff --git a/lib/iris/tests/unit/tests/stock/__init__.py b/lib/iris/tests/unit/tests/stock/__init__.py
index f91390c2b3..ad31134ad4 100644
--- a/lib/iris/tests/unit/tests/stock/__init__.py
+++ b/lib/iris/tests/unit/tests/stock/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris.tests.stock` module."""
diff --git a/lib/iris/tests/unit/tests/stock/test_netcdf.py b/lib/iris/tests/unit/tests/stock/test_netcdf.py
index 54d7b895cc..eb1c289c37 100644
--- a/lib/iris/tests/unit/tests/stock/test_netcdf.py
+++ b/lib/iris/tests/unit/tests/stock/test_netcdf.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris.tests.stock.netcdf` module."""
import shutil
diff --git a/lib/iris/tests/unit/tests/test_IrisTest.py b/lib/iris/tests/unit/tests/test_IrisTest.py
index 10de2a7760..ef895e45b6 100644
--- a/lib/iris/tests/unit/tests/test_IrisTest.py
+++ b/lib/iris/tests/unit/tests/test_IrisTest.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris.tests.IrisTest` class."""
# import iris tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/time/__init__.py b/lib/iris/tests/unit/time/__init__.py
index 3483b92e62..fdbb082434 100644
--- a/lib/iris/tests/unit/time/__init__.py
+++ b/lib/iris/tests/unit/time/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris.time` module."""
diff --git a/lib/iris/tests/unit/time/test_PartialDateTime.py b/lib/iris/tests/unit/time/test_PartialDateTime.py
index cfffafea2c..8223f4a518 100644
--- a/lib/iris/tests/unit/time/test_PartialDateTime.py
+++ b/lib/iris/tests/unit/time/test_PartialDateTime.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the `iris.time.PartialDateTime` class."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/util/__init__.py b/lib/iris/tests/unit/util/__init__.py
index 9aed566a19..ce94a18f4e 100644
--- a/lib/iris/tests/unit/util/__init__.py
+++ b/lib/iris/tests/unit/util/__init__.py
@@ -1,6 +1,5 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Unit tests for the :mod:`iris.util` module."""
diff --git a/lib/iris/tests/unit/util/test__coord_regular.py b/lib/iris/tests/unit/util/test__coord_regular.py
index a5e9aca9ed..bd9f8f3430 100644
--- a/lib/iris/tests/unit/util/test__coord_regular.py
+++ b/lib/iris/tests/unit/util/test__coord_regular.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Test elements of :mod:`iris.util` that deal with checking coord regularity.
Specifically, this module tests the following functions:
diff --git a/lib/iris/tests/unit/util/test__is_circular.py b/lib/iris/tests/unit/util/test__is_circular.py
index e67eb38294..67099f49d6 100644
--- a/lib/iris/tests/unit/util/test__is_circular.py
+++ b/lib/iris/tests/unit/util/test__is_circular.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Test function :func:`iris.util._is_circular`."""
# import iris tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/util/test__mask_array.py b/lib/iris/tests/unit/util/test__mask_array.py
index 91a5aca1b4..2245576de9 100644
--- a/lib/iris/tests/unit/util/test__mask_array.py
+++ b/lib/iris/tests/unit/util/test__mask_array.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Test function :func:`iris.util._mask_array"""
import dask.array as da
diff --git a/lib/iris/tests/unit/util/test__slice_data_with_keys.py b/lib/iris/tests/unit/util/test__slice_data_with_keys.py
index 061a2f5b37..9c93041521 100644
--- a/lib/iris/tests/unit/util/test__slice_data_with_keys.py
+++ b/lib/iris/tests/unit/util/test__slice_data_with_keys.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Test function :func:`iris.util._slice_data_with_keys`.
diff --git a/lib/iris/tests/unit/util/test_array_equal.py b/lib/iris/tests/unit/util/test_array_equal.py
index 77631907a1..38b9652443 100644
--- a/lib/iris/tests/unit/util/test_array_equal.py
+++ b/lib/iris/tests/unit/util/test_array_equal.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Test function :func:`iris.util.array_equal`."""
# import iris tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/util/test_broadcast_to_shape.py b/lib/iris/tests/unit/util/test_broadcast_to_shape.py
index 3df1634ba5..c060967edf 100644
--- a/lib/iris/tests/unit/util/test_broadcast_to_shape.py
+++ b/lib/iris/tests/unit/util/test_broadcast_to_shape.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Test function :func:`iris.util.broadcast_to_shape`."""
# import iris tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/util/test_column_slices_generator.py b/lib/iris/tests/unit/util/test_column_slices_generator.py
index 899c6b98ba..fbb5a8f588 100644
--- a/lib/iris/tests/unit/util/test_column_slices_generator.py
+++ b/lib/iris/tests/unit/util/test_column_slices_generator.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Test function :func:`iris.util.column_slices_generator`."""
# import iris tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/util/test_demote_dim_coord_to_aux_coord.py b/lib/iris/tests/unit/util/test_demote_dim_coord_to_aux_coord.py
index ec8f9904f1..65e3dec93b 100644
--- a/lib/iris/tests/unit/util/test_demote_dim_coord_to_aux_coord.py
+++ b/lib/iris/tests/unit/util/test_demote_dim_coord_to_aux_coord.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Test function :func:`iris.util.demote_dim_coord_to_aux_coord`."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/util/test_describe_diff.py b/lib/iris/tests/unit/util/test_describe_diff.py
index 0bb13cab94..74bd71389e 100644
--- a/lib/iris/tests/unit/util/test_describe_diff.py
+++ b/lib/iris/tests/unit/util/test_describe_diff.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Test function :func:`iris.util.describe_diff`."""
# import iris tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/util/test_equalise_attributes.py b/lib/iris/tests/unit/util/test_equalise_attributes.py
index 13aa1e2af4..a4198160a9 100644
--- a/lib/iris/tests/unit/util/test_equalise_attributes.py
+++ b/lib/iris/tests/unit/util/test_equalise_attributes.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Unit tests for the :func:`iris.util.equalise_attributes` function.
diff --git a/lib/iris/tests/unit/util/test_file_is_newer_than.py b/lib/iris/tests/unit/util/test_file_is_newer_than.py
index cff878a294..c27f4f1dcb 100644
--- a/lib/iris/tests/unit/util/test_file_is_newer_than.py
+++ b/lib/iris/tests/unit/util/test_file_is_newer_than.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Test function :func:`iris.util.test_file_is_newer`.
diff --git a/lib/iris/tests/unit/util/test_find_discontiguities.py b/lib/iris/tests/unit/util/test_find_discontiguities.py
index 9e043c71bd..6965541320 100644
--- a/lib/iris/tests/unit/util/test_find_discontiguities.py
+++ b/lib/iris/tests/unit/util/test_find_discontiguities.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Test function :func:`iris.util.find_discontiguities"""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/util/test_mask_cube.py b/lib/iris/tests/unit/util/test_mask_cube.py
index 0123d0cca5..7237f0491c 100644
--- a/lib/iris/tests/unit/util/test_mask_cube.py
+++ b/lib/iris/tests/unit/util/test_mask_cube.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Test function :func:`iris.util.mask_cube"""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/util/test_new_axis.py b/lib/iris/tests/unit/util/test_new_axis.py
index a6374f97ad..197c06e449 100644
--- a/lib/iris/tests/unit/util/test_new_axis.py
+++ b/lib/iris/tests/unit/util/test_new_axis.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Test function :func:`iris.util.new_axis`."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/util/test_promote_aux_coord_to_dim_coord.py b/lib/iris/tests/unit/util/test_promote_aux_coord_to_dim_coord.py
index 0e1e56fee5..8ad9cbf4c2 100644
--- a/lib/iris/tests/unit/util/test_promote_aux_coord_to_dim_coord.py
+++ b/lib/iris/tests/unit/util/test_promote_aux_coord_to_dim_coord.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Test function :func:`iris.util.promote_aux_coord_to_dim_coord`."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/util/test_reverse.py b/lib/iris/tests/unit/util/test_reverse.py
index 7d9a669a9d..b6da468e7f 100644
--- a/lib/iris/tests/unit/util/test_reverse.py
+++ b/lib/iris/tests/unit/util/test_reverse.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Test function :func:`iris.util.reverse`."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/util/test_rolling_window.py b/lib/iris/tests/unit/util/test_rolling_window.py
index 3644da9c9c..533e5d5633 100644
--- a/lib/iris/tests/unit/util/test_rolling_window.py
+++ b/lib/iris/tests/unit/util/test_rolling_window.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Test function :func:`iris.util.rolling_window`."""
# import iris tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/util/test_squeeze.py b/lib/iris/tests/unit/util/test_squeeze.py
index b5f0a91b99..cb4b55c1e6 100644
--- a/lib/iris/tests/unit/util/test_squeeze.py
+++ b/lib/iris/tests/unit/util/test_squeeze.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Test function :func:`iris.util.squeeze`."""
# Import iris.tests first so that some things can be initialised before
diff --git a/lib/iris/tests/unit/util/test_unify_time_units.py b/lib/iris/tests/unit/util/test_unify_time_units.py
index 8bee046dad..2d7a3b6d64 100644
--- a/lib/iris/tests/unit/util/test_unify_time_units.py
+++ b/lib/iris/tests/unit/util/test_unify_time_units.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Test function :func:`iris.util.array_equal`."""
# import iris tests first so that some things can be initialised before
diff --git a/lib/iris/time.py b/lib/iris/time.py
index 6788b01c19..abcf92e4bd 100644
--- a/lib/iris/time.py
+++ b/lib/iris/time.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""Time handling."""
diff --git a/lib/iris/util.py b/lib/iris/util.py
index c040b72b54..ee415d230e 100644
--- a/lib/iris/util.py
+++ b/lib/iris/util.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
Miscellaneous utility functions.
diff --git a/pyproject.toml b/pyproject.toml
index 4f9ade1351..88b39f1601 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -15,7 +15,7 @@ authors = [
classifiers = [
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Science/Research",
- "License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)",
+ "License :: OSI Approved :: BSD License",
"Operating System :: MacOS",
"Operating System :: POSIX",
"Operating System :: POSIX :: Linux",
@@ -48,7 +48,7 @@ keywords = [
"ugrid",
"visualisation",
]
-license = {text = "LGPL-3.0-or-later"}
+license = {text = "BSD-3-Clause"}
name = "scitools-iris"
requires-python = ">=3.9"
@@ -59,7 +59,7 @@ Documentation = "https://scitools-iris.readthedocs.io/en/stable/"
Issues = "https://github.com/SciTools/iris/issues"
[tool.setuptools]
-license-files = ["COPYING", "COPYING.LESSER"]
+license-files = ["LICENSE"]
zip-safe = false
[tool.setuptools.dynamic]
diff --git a/tools/generate_std_names.py b/tools/generate_std_names.py
index 51a31ef971..8e3b24aac6 100644
--- a/tools/generate_std_names.py
+++ b/tools/generate_std_names.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
A script to convert the standard names information from the provided XML
file into a Python dictionary format.
@@ -27,9 +26,8 @@
STD_VALUES_FILE_TEMPLATE = '''
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
This file contains a dictionary of standard value names that are mapped
to another dictionary of other standard name attributes. Currently only
diff --git a/tools/release_do_nothing.py b/tools/release_do_nothing.py
index afe12a662d..bd38f0f733 100755
--- a/tools/release_do_nothing.py
+++ b/tools/release_do_nothing.py
@@ -1,9 +1,8 @@
#!/usr/bin/env python3
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
A do-nothing script to hand-hold through the Iris release process.
diff --git a/tools/update_lockfiles.py b/tools/update_lockfiles.py
index 073f86cda6..a81ab8cafc 100755
--- a/tools/update_lockfiles.py
+++ b/tools/update_lockfiles.py
@@ -1,8 +1,7 @@
# Copyright Iris contributors
#
-# This file is part of Iris and is released under the LGPL license.
-# See COPYING and COPYING.LESSER in the root of the repository for full
-# licensing details.
+# This file is part of Iris and is released under the BSD license.
+# See LICENSE in the root of the repository for full licensing details.
"""
A command line utility for generating conda-lock files for the environments
that nox uses for testing each different supported version of python.