Shapelets是一个模块,提供对各种shapelet函数的参考访问,以及它们在科学和天文学中的一些重要应用。
项目描述
shapelets
什么是shapelets?
Shapelets是一个Python包,实现了多个shapelet函数及其在科学和天文学中的一些重要应用。Shapelet函数是一组完整且正交的局部基函数,具有方便于图像处理和分析的数学性质,适用于广泛应用的图像。
由于这些特性,近年来它们得到了广泛的应用,包括
- 天文学/天体物理学(《A. Refregier (2003)》[1],《R. Massey (2005)》[2],《J. Berge (2019)》[3])
- 自组装纳米材料(《R. Suderman (2015)》[4],《T. Akdeniz (2018)》[5],《M. P. Tino (2024)》[6])
- 计算神经科学(《J. D. Victor (2006)》[7],《T. O. Sharpee (2009)》[8])
- 医学成像(《J. Weissman (2004)》[9])
shapelets软件包提供了4个shapelet函数定义的参考代码和文档
- 笛卡尔shapelets(《A. Refregier (2003)》[1]),
- 极坐标shapelets(《R. Massey (2005)》[2]),
- 具有常数径向尺度的正交归一极坐标shapelets(《T. Akdeniz (2018)》[5]),以及
- 指数shapelets(《J. Berge (2019)》[3])
入门指南
如果您在机器上安装了Python 3.10+,您可以通过pip在终端中安装shapelets软件包: pip install shapelets
如果您没有在机器上安装Python 3.10+,请参阅安装指南。
新用户也鼓励访问官方网站,了解shapelets软件包的使用方法,包括详细的示例、软件包提供的自定义终端命令以及更多内容。此外,如果您计划在自己的工作中使用shapelets软件包,请使用以下引用:
问题
如果您在使用shapelets时遇到任何错误或问题,请使用我们的问题跟踪器创建帖子。请提供清晰简洁的问题描述,如有必要,附上图片或代码片段。我们将尽最大努力尽快有效地解决问题。
贡献
shapelets软件包的作者欢迎对源代码的外部贡献。如果用户遵循贡献政策,这个过程将最为简单
- 在软件包的问题跟踪器上创建一个问题,清楚地描述您对代码修改或添加的意图
- 确保您的修改或添加符合shapelets软件包现有的标准,特别是对新方法的详细文档(请参阅现有方法的示例文档)
- 测试您的修改以确保软件包的核心功能没有受到影响,通过运行入口点的单元测试:
shapelets-test
- 一旦与软件包作者讨论了问题,您可以提交包含代码修改的pull request
引用
如果您计划在自己的工作中使用shapelets,请使用以下Bibtex引用
@article{TinoShapelets2024,
author = {Tino, Matthew Peres and Abdulaziz, Abbas Yusuf and Suderman, Robert and Akdeniz, Thomas and Abukhdeir, Nasser Mohieddin},
title = {Shapelets: A Python package implementing shapelet functions and their applications},
doi = {10.21105/joss.06058},
journal = {Journal of Open Source Software},
number = {95},
pages = {6058},
volume = {9},
year = {2024},
url = {https://joss.theoj.org/papers/10.21105/joss.06058}
}
作者
-
Matthew Peres Tino (mptino@uwaterloo.ca)
-
Abbas Yusuf Abdulaziz
-
Nasser Mohieddin Abukhdeir
-
Robert Suderman
-
Thomas Akdeniz
GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999
版权(C)1991, 1999 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 任何人都可以复制和分发本许可证文件的准确副本,但不得对其进行更改。
[这是Lesser GPL的第一个发布版本。它也被视为GNU库公共许可证版本2的后续版本,因此版本号为2.1.]
Preamble
大多数软件的许可证都是为了剥夺你分享和更改它的自由。相比之下,GNU通用公共许可证旨在保证你分享和更改免费软件的自由——确保软件对所有用户都是自由的。
本许可证,即 Lesser 通用公共许可证,适用于某些特别指定的软件包——通常是库——这些软件包由自由软件基金会和其他选择使用它的作者创建。您也可以使用它,但我们建议您首先仔细考虑在特定情况下,本许可证或普通通用公共许可证是否是更好的策略,以下为解释。
当我们提到自由软件时,我们指的是使用自由,而不是价格。我们的通用公共许可证旨在确保您有权分发自由软件的副本(如果您愿意,可以为此服务收费);您收到源代码或需要时可以获取源代码;您可以更改软件并使用其部分来创建新的自由程序;以及您被告知您可以这样做。
为了保护您的权利,我们需要制定限制,禁止分销商剥夺您的这些权利或要求您放弃这些权利。这些限制在您分发库的副本或修改它的情况下,转化为您的一些责任。
例如,如果您分发库的副本,无论是否免费还是收费,您必须向收件人提供我们赋予您的所有权利。您必须确保他们也能收到或获取源代码。如果您将其他代码与库链接,您必须向收件人提供完整的对象文件,以便他们在修改库并重新编译后,可以将其与库重新链接。您还必须向他们展示这些条款,以便他们知道自己的权利。
我们通过两步方法来保护您的权利:(1)我们对库进行版权保护,(2)我们提供本许可证,它赋予您复制、分发和/或修改库的法律许可。
为了保护每个分销商,我们想明确指出,对于自由库没有提供任何保证。此外,如果库被他人修改并传播,收件人应知道他们拥有的不是原始版本,以免原始作者的声誉受到他人可能引入的问题的影响。
最后,软件专利对任何自由程序的存在构成持续威胁。我们希望确保一家公司不能通过从专利持有人那里获得限制性许可来有效地限制自由程序的用户。因此,我们坚持认为,为库的某个版本获得的任何专利许可证必须与本许可证中指定的全面使用自由相一致。
大多数 GNU 软件包括一些库都受普通 GNU 通用公共许可证的约束。本许可证,即 GNU Lesser 通用公共许可证,适用于某些指定的库,并且与普通通用公共许可证有很大不同。我们使用此许可证来允许将某些库链接到非自由程序。
当程序与库链接时,无论是静态链接还是使用共享库,这两个的组合在法律上被视为一个组合作品,是原始库的衍生品。因此,普通通用公共许可证仅允许在整个组合符合其自由标准的情况下进行此类链接。Lesser 通用公共许可证允许将其他代码与库链接的更宽松标准。
我们称此许可证为“Lesser”通用公共许可证,因为它比普通通用公共许可证对用户自由的保护较少。它还向其他自由软件开发者提供了比竞争的非自由程序较少的优势。这些劣势是我们使用普通通用公共许可证的许多库的原因。然而,在特定特殊情况下,Lesser 许可证提供了一些优势。
例如,在极少数情况下,可能存在鼓励尽可能广泛使用某个库的特殊需求,使其成为事实上的标准。为此,必须允许非自由程序使用该库。更常见的情况是,一个免费库执行与广泛使用的非自由库相同的工作。在这种情况下,将免费库仅限于免费软件的使用几乎没有收获,所以我们使用较宽松的通用公共许可证。
在其他情况下,允许在非自由程序中使用特定库,使更多的人能够使用大量的自由软件。例如,允许在非自由程序中使用GNU C库,使更多的人能够使用整个GNU操作系统及其变体GNU/Linux操作系统。
虽然较宽松的通用公共许可证对用户自由的保护较少,但它确实确保了与库链接的程序的用户有权并且有能力使用库的修改版本运行该程序。
以下是对复制、分发和修改的精确条款和条件。请注意“基于库的工作”与“使用库的工作”之间的区别。前者包含来自库的代码,而后者必须与库结合才能运行。
GNU LESSER GENERAL PUBLIC LICENSE
复制、分发和修改的条款和条件
- 本许可证协议适用于任何包含版权所有者或其他授权方放置的通知的软件库或其他程序,说明它可以按照本较宽松的通用公共许可证(也称为“本许可证”)的条款分发。每个许可证持有人被称为“你”。
“库”是指为了便于与应用程序(使用其中一些功能和数据)链接而准备的软件函数和数据集合,以形成可执行文件。
以下“库”指任何此类软件库或工作,该工作已根据这些条款分发。基于库的工作是指库或任何版权法下的衍生作品:也就是说,包含库或其一部分的工作,无论是原文还是经过修改和/或直接翻译成另一种语言。(以下,翻译无限制地包含在“修改”一词中。)
“源代码”是指对作品进行修改的首选形式。对于一个库,完整的源代码意味着它包含的所有模块的源代码,加上任何相关的接口定义文件,加上用于控制库编译和安装的脚本。
本许可证不包括复制、分发和修改以外的活动;这些活动超出其范围。使用库运行程序的行为不受限制,只有当其内容构成基于库的工作(独立于在编写工具中使用库)时,此类程序产生的输出才受保护。这取决于库的行为以及使用库的程序的行为。
- 你可以按你收到的形式复制和分发库的完整源代码的准确副本,在任何媒介上,只要你在每份副本上明显且适当地公布适当的版权声明和免责声明;保持所有引用本许可证和缺少任何保证的通知完整;并随库分发本许可证的副本。
你可以为复制副本的物理行为收费,你也可以选择通过收费提供保修保护。
- 你可以修改你的库副本或其任何部分,从而形成基于库的工作,并按本条第一款的规定复制和分发此类修改或工作,只要你同时满足所有这些条件。
a) The modified work must itself be a software library.
b) You must cause the files modified to carry prominent notices
stating that you changed the files and the date of any change.
c) You must cause the whole of the work to be licensed at no
charge to all third parties under the terms of this License.
d) If a facility in the modified Library refers to a function or a
table of data to be supplied by an application program that uses
the facility, other than as an argument passed when the facility
is invoked, then you must make a good faith effort to ensure that,
in the event an application does not supply such function or
table, the facility still operates, and performs whatever part of
its purpose remains meaningful.
(For example, a function in a library to compute square roots has
a purpose that is entirely well-defined independent of the
application. Therefore, Subsection 2d requires that any
application-supplied function or table used by this function must
be optional: if the application does not supply it, the square
root function must still compute square roots.)
这些要求适用于整个修改后的作品。如果作品的可识别部分不是从库中派生出来的,并且可以合理地认为它们本身是独立和单独的作品,那么在您将它们作为单独的作品分发时,本许可证及其条款不适用于这些部分。但是,当您将相同的部分作为基于库的作品的一部分分发时,整个作品的分发必须符合本许可证的条款,其许可权扩展到整个作品,因此无论谁编写了它,每个部分都适用。
因此,本节的意图不是主张权利或挑战您对完全由您编写的作品的版权,而是要行使对基于库的派生作品或汇编作品分发的控制权。
此外,仅仅将一个不基于库的其他作品与库(或基于库的作品)一起聚合在存储或分发媒介的卷中,并不将其他作品纳入本许可证的范围。
- 您可以选择将普通GNU通用公共许可证的条款应用于库的给定副本,而不是本许可证。为此,您必须更改所有引用本许可证的通知,使它们引用普通GNU通用公共许可证版本2,而不是本许可证。(如果普通GNU通用公共许可证的版本2之后出现了更新的版本,那么您可以根据需要指定该版本。)不要对这些通知进行任何其他更改。
一旦在给定副本中进行此更改,该副本就不可逆转,因此普通GNU通用公共许可证适用于从该副本制作的所有后续副本和派生作品。
当您希望将库的部分代码复制到不是库的程序中时,此选项很有用。
- 您可以在符合上述第1条和第2条条款的情况下,以目标代码或可执行形式复制和分发库(或其部分或派生版本,根据第2条)提供完整的相应机器可读源代码,这些源代码必须在上述第1条和第2条条款下在通常用于软件交换的媒介上分发。
如果通过提供从指定地点复制访问权限的方式分发目标代码,那么提供从同一地点复制源代码的等效访问权限满足分发源代码的要求,即使第三方没有被强制与目标代码一起复制源代码。
- 一个不包含库任何部分的派生,但设计为通过编译或链接与库一起使用来工作的程序,称为“使用库的工作”。这样的工作本身不是库的派生作品,因此超出本许可证的范围。
然而,将“使用库的工作”与库链接创建了一个可执行文件,它是库的派生作品(因为它包含库的部分),而不是“使用库的工作”。因此,可执行文件受本许可证的保护。第6条规定了此类可执行文件的分发条款。
当“使用库的工作”使用库的组成部分的头文件中的材料时,即使源代码不是,该工作的目标代码也可能是库的派生作品。这是特别重要的,如果工作可以在不使用库的情况下链接,或者如果工作本身是库。此门槛是否成立并非法律明确界定。
如果这样的目标文件只使用数值参数、数据结构布局和访问器、小型宏和短内联函数(长度不超过十行),则该目标文件的使用不受限制,无论它是否构成合法的衍生作品。(包含此目标代码以及库的部分的可执行文件仍属于第6节。)
否则,如果作品是库的衍生作品,您可以在第6节的条款下分发该作品的目标代码。任何包含该作品的可执行文件也属于第6节,无论它们是否直接与库本身链接。
- 作为上述条款的例外,您还可以将“使用库的作品”与库组合或链接,以产生包含库部分的作品,并在您选择的条款下分发该作品,前提是这些条款允许对作品进行修改以供客户使用,并允许对修改进行反向工程以进行调试。
您必须在作品的每个副本上突出显示通知,说明其中使用了库,以及库及其使用受本许可证的保护。您必须提供本许可证的副本。如果作品在执行过程中显示版权声明,您必须将库的版权声明包括在内,并附加一个引用,指导用户查阅本许可证的副本。此外,您必须执行以下一项操作
a) Accompany the work with the complete corresponding
machine-readable source code for the Library including whatever
changes were used in the work (which must be distributed under
Sections 1 and 2 above); and, if the work is an executable linked
with the Library, with the complete machine-readable "work that
uses the Library", as object code and/or source code, so that the
user can modify the Library and then relink to produce a modified
executable containing the modified Library. (It is understood
that the user who changes the contents of definitions files in the
Library will not necessarily be able to recompile the application
to use the modified definitions.)
b) Use a suitable shared library mechanism for linking with the
Library. A suitable mechanism is one that (1) uses at run time a
copy of the library already present on the user's computer system,
rather than copying library functions into the executable, and (2)
will operate properly with a modified version of the library, if
the user installs one, as long as the modified version is
interface-compatible with the version that the work was made with.
c) Accompany the work with a written offer, valid for at
least three years, to give the same user the materials
specified in Subsection 6a, above, for a charge no more
than the cost of performing this distribution.
d) If distribution of the work is made by offering access to copy
from a designated place, offer equivalent access to copy the above
specified materials from the same place.
e) Verify that the user has already received a copy of these
materials or that you have already sent this user a copy.
对于可执行文件,"使用库的作品"所必需的格式必须包括用于从其中重新生成可执行文件所需的任何数据和实用程序。但是,作为一个特殊例外,要分发的材料不需要包括通常与操作系统的主要组件(编译器、内核等)一起分发的任何内容(无论是源代码还是二进制形式),除非该组件本身附随于可执行文件。
可能出现这种情况,即此要求与不通常伴随操作系统的其他专有库的许可证限制相矛盾。这种矛盾意味着您不能在您分发的可执行文件中将它们与库一起使用。
- 您可以将基于库的作品的库设施与其他不受本许可证保护的库设施并排放在单个库中,并分发此类组合库,前提是允许单独分发基于库的作品和其他库设施,并且您必须执行以下两项操作
a) Accompany the combined library with a copy of the same work
based on the Library, uncombined with any other library
facilities. This must be distributed under the terms of the
Sections above.
b) Give prominent notice with the combined library of the fact
that part of it is a work based on the Library, and explaining
where to find the accompanying uncombined form of the same work.
-
您不得复制、修改、再许可、链接或分发库,除非本许可证明确提供。任何其他复制、修改、再许可、链接或分发库的企图都是无效的,并将自动终止您根据本许可证的权利。但是,从您那里收到副本或权利的各方,只要这些方完全遵守,其许可证不会被终止。
-
您不必接受本许可证,因为您没有签署它。然而,没有其他东西授予您修改或分发库或其衍生作品的权利。如果您不接受本许可证,这些行为是法律禁止的。因此,通过修改或分发库(或基于库的任何作品),您表示您接受本许可证以进行此类操作,并接受所有关于复制、分发或修改库或其基于库的作品的条款和条件。
-
每次您重新分发库(或基于库的任何作品)时,接收者自动从原始许可方获得一份许可,允许其根据本条款和条件复制、分发、链接或修改库。您不得对被许可人行使本许可中授予的权利施加任何进一步限制。您不对第三方遵守本许可的行为承担责任。
-
如果由于法院判决或专利侵权指控(不限于专利问题)或其他任何原因(不论是否限于专利问题),对您(不论是通过法院命令、协议或其他方式)施加的条件与本许可的条件相矛盾,这些条件不能免除您遵守本许可的条件。如果您不能同时满足本许可和任何其他相关义务,那么作为结果,您可能根本不能分发库。例如,如果专利许可不允许所有通过您直接或间接获得副本的人免费重新分发库,那么您满足这两个许可的唯一方法就是完全停止分发库。
如果本节任何部分在任何特定情况下被认定为无效或不可执行,则本节的其余部分应适用,并且本节整体在其他情况下应适用。
本节的目的不是诱导您侵犯任何专利或其他财产权主张,或质疑此类主张的有效性;本节唯一的目的在于保护通过公共许可实践实施的自由软件分发系统的完整性。许多人已经通过该系统对广泛分布的软件做出了慷慨的贡献,这些贡献依赖于该系统的一致应用;作者/捐赠者决定是否愿意通过任何其他系统分发软件,许可方不能强加这种选择。
本节旨在清楚地说明本许可其余部分被认为的后果。
-
如果由于专利或受版权保护的接口,某些国家的库的分发和使用受到限制,将库置于本许可之下的原始版权所有者可以添加一个明确的地理分发限制,排除这些国家,这样分发仅限于或在这些国家之间进行。在这种情况下,本许可将纳入该限制,如同本许可正文所述。
-
自由软件基金会可能会不时发布修订版和/或新版本的较轻通用公共许可证。这些新版本的精神将与当前版本相似,但在细节上可能有所不同,以解决新问题或关注点。
每个版本都有一个区分性的版本号。如果库指定了适用于它的本许可的版本号以及“任何后续版本”,您可以选择遵循该版本或自由软件基金会发布的任何后续版本的条款和条件。如果库未指定许可版本号,您可以选择自由软件基金会发布的任何版本。
-
如果您希望将库的部分内容纳入其他分发条件与这些条件不兼容的免费程序中,请写信给作者请求许可。对于由自由软件基金会拥有的版权软件,请写信给自由软件基金会;我们有时会为此做出例外。我们的决定将以保护我们免费软件的所有衍生品的自由状态和促进软件的共享和重用这两项目标为指导。
NO WARRANTY
-
由于该库免费许可,根据适用法律允许的范围,不对该库提供任何保证。除非以书面形式另行声明,版权所有者/其他各方提供的库为“现状”提供,不提供任何形式的保证,无论是明示的还是默示的,包括但不限于商销性和适合特定用途的默示保证。关于库的质量和性能的全部风险由您承担。如果库被发现存在缺陷,您将承担所有必要维护、修理或纠正的费用。
-
除非适用法律要求或书面同意,否则在任何情况下,任何版权所有者或任何其他根据上述规定修改和/或重新分发库的当事人,均不对您因使用或无法使用该库(包括但不限于数据丢失或数据被错误处理,或您或第三方遭受的损失,或库无法与其他软件一起运行)而产生的任何一般、特殊、偶然或后果性损害承担责任,即使此类持有人或其他当事人已被告知此类损害的可能性。
END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Libraries
如果您开发了一个新的库,并且希望它对公众尽可能有用,我们建议将其作为免费软件,使每个人都可以重新分发和更改。您可以通过允许在这些条款下(或,作为替代,在普通通用公共许可证的条款下)重新分发来做到这一点。
为应用这些条款,请将以下通知附加到库中。将它们附加到每个源文件的开头最安全,这样可以最有效地传达排除保证;每个文件至少应包含“版权”行和指向完整通知的指针。
<one line to give the library's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library 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
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
USA
另外,添加有关如何通过电子邮件和纸质邮件联系您的信息。
如果需要,您还应该让您的雇主(如果您是一名程序员)或您的学校(如果有的话)为该库签署“版权放弃声明”。以下是一个示例;更改名称
Yoyodyne,Inc.,特此放弃对James Random Hacker编写的库“Frob”(一个用于调节旋钮的库)的所有版权利益。
,1990年4月1日 Ty Coon,副总裁
这就是全部内容!
项目详情
下载文件
下载适用于您的平台文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分发
构建分发
shapelets-1.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c12560991e5bfdbea5211bec47a1786d807422ff3e25025cca06d11f0fa137a0 |
|
MD5 | 25eba839d06b77f3f4a37317fd93c68c |
|
BLAKE2b-256 | fc81b37ace31c64057daf970afca8174c0bde203b770ccfa52f158f26727de1f |