没有合适的资源?快使用搜索试试~ 我知道了~
太阳物理学社区中的Python(PyHC):现状与未来展望
请引用这篇文章作为:J. Barnum,A.马松河H. W. Friedel等人,太阳物理学社区中的Python(PyHC):现状和未来展望,空间研究进展,https://doi.org/10.1016/j.asr.2022.10.006可在www.sciencedirect.com上在线获取ScienceDirect空间研究进展xxx(xxxx)xxxwww.elsevier.com/locate/asr太阳物理学社区中的Python(PyHC):现状与未来展望放大图片作者:Julie Barnuma,Arnaud Massonb,Reinhard H. W.弗里德尔c,亚伦罗伯茨dBrian A.ThomasD美国科罗拉多大学博尔德分校大气和空间物理实验室,地址:1234 Innovation Dr,Boulder,CO 80303,USAbTelespazio UK for the European Space Agency(ESA),European Space Astronomy Centre,Camino Bajo del Castillo s/n,28692Villafranca del Castillo,Madrid,SpaincLos Alamos National Laboratory,Los Alamos,NM 87545,USAd美国国家航空航天局戈达德太空飞行中心,8800 Greenbelt Rd,Greenbelt,MD 20771,USA接收日期:2022年1月31日;接收日期:2022年9月20日;接受日期:2022年10月1日摘要Python in Heliophysics Community(PyHC)成立至今已有四年。在这段时间里,该社区在体现和实施Burrell等人提出的“太阳物理学框架”的理想方面取得了长足的进步具体来说,这样一个框架的组成部分包括:1)集中当前的Python包,2)增加这些项目的可访问性和连接性,3)考虑软件属性问题,以及4)建立和实施代码开发的最佳实践和标准。我们描述的方式,以及在何种程度上,PyHC已经实现了这四个租户。然后,我们提出了推进PyHC的电子商务的建议,包括我们可以改进我们的信息架构的方法,我们如何在项目可持续性和使用方面发展我们的社区,以及社区本身的社会组成部分,我们如何改进PyHC包集成,以及最后,非Python库的考虑因素。其中建议的改进和补充推进了PyHC©2022 COSPAR。由爱思唯尔公司出版这是CC BY许可下的开放获取文章(http://creativecommons.org/licenses/by/4.0/)。关键词:太阳物理学;开源软件; Python;软件互操作性;软件可持续性;信息架构1. 介绍一种越来越流行的数据分析方法涉及利用开源软件。开发开源软件工具最广泛使用的编程语言之一是Python(van Rossum,1995)。Python之所以流行,是因为它的 “ 社 区 驱 动 的 开 源 语 言 , 具 有 广 泛 的 开发 良 好 的 软 件 包 ” ( B u r r e l l 等 人 , 2018年)。几包-*通讯作者。电子邮件地址:Julie. lasp.colorado.edu(J. Barnum)。太阳物理学和空间天气社区的许多人已经开始将Python纳入他们的工作流程,用于软件工具的创建。然而,大部分软件开发都是作为孤立的、单独的电子商务的一部分完成的。这导致了太阳物理学Python工具的优势,这些工具在功能上重叠,增加了工具冗余的发生率,工具没有很好地集成或互操作,工具采用了不同级别的标准(如果有专门应用的话),以及缺乏社区参与开发过程的工具。简而言之,太阳物理学和空间天气Python社区需要一个统一的框架。https://doi.org/10.1016/j.asr.2022.10.0060273-1177/©2022 COSPAR。由爱思唯尔公司出版这是CC BY许可下的开放获取文章(http://creativecommons.org/licenses/by/4.0/)。J. Barnum等人空间研究进展xxx(xxxx)xxx2集成项目并鼓励开发人员之间的协作(McGranaghan等人, 2017年)。Burrell等人(2018)描述了实现上述愿望的初步计划 。 其中 表达 的 想法 主 要基 于Astropy 的 成功 框 架(Astropy Collaboration et al.,2013年)。Burrell等人(2018)表示,这样的社区将通过集中当前的Python包,增加所述项目的可访问性和连接性,解决软件归属问题,以及建立和实施代码开发的最佳实践以及代码标准来实现。通过与这些领域的竞争,社区旨在帮助使Python软件工具更加可见和可访问,鼓励开发人员之间的沟通,减少重叠的功能和重复的代码,同时鼓励Python太阳物理学软件包之间更好的集成和互操作性,并更容易地确定社区因此,“PyHC 现在是支持开发五个符合PyHC 标准的核心Python包的首要组织。这些软件包涵盖太阳物理学的子领域,包括太阳物理学、太阳风、磁层、电离层和大气物理学。数十个Python包也连接到PyHC,并在PyHC网站上列出。本文由两个主要部分组成。第一部分描述了PyHC的现状,包括PyHC社群活动以及PyHC如何被视为太阳物理学框架(第2节)。以下部分重点关注PyHC可能的改进,从其信息架构开始,包括:项目文档、网站可扩展性和社区资源(第3.1节)。PyHC软件使用和可持续性以及社区参与的可能改进,然后提出(第3.2节)。最后两个小节涉及到更好地集成各种包,以及它们与社区仍然使用的非python库的链接。2. PyHC的现状2.1. PyHC社群活动2018年春季,在三年一度的地球-太阳峰会(TESS)上,2019年,它已经发展成为一个活跃的社区。他们现在有62个PyHC-a联盟项目,超过100人订阅了PyHCGoogle邮件列表,还有20-30人参加双周一次的电话会议。于秋季及春季举行的七次半年度会议均获踊跃参与,而于二零二一年夏季举行的工作坊则汇聚PyHC领导层讨论社区未来的技术优先事项。最近,第一届PyHC暑期学校于2022年6月举行。PyHC电信会议(由TESS会议发起)涵盖了广泛的主题,包括PyHC未来的技术优先级、项目更新、介绍和演示、围绕潜在资金或出版机会的讨论,以及了解PyHC之外的社区(介绍合作机会)。一年两次的会议是在上述电信会议期间讨论的结果,与会者表示希望举行一次会议,以“澄清前进的道路并确定优先事项“(Ware等人,2019年)。这些会议通常包括一些项目更新,与会议主题相关的外部演讲者,开发人员聚集在一起并同时挖掘编码问题的黑客会议,以及能够主持面对面会议的非会议(其中社区根据会议剩余时间内出现的商定主题进行讨论)。2018年秋季的第一次会议产生了PyHC标准(Annex等人,2018),指导社群活动和项目开发;有关PyHC标准的更多信息,请参见第2.2节。PyHC还增加了其在PyHC组织的会议以外的会议中的参与。自2018年以来,PyHC成员每年都会在美国地球物理联盟(AGU)会议上组织一次海报会议PyHC的几个成员还参加了国际太阳物理学数据环境联盟(IHDEA)(https://ihdea.net)的年会,并在会上发言。PyHC的主要成员和领导人也是国际空间气象行动小组(ISWAT;https://iswat-cospar.org/)与空间研究委员会(空间研委会)有联系。PyHC成员还提出并领导了许多其他会议和黑客周。这些活动有助于将PyHC推广到更广泛的太阳物理学和空间气象界。2.2. PyHC标准以下章节多次引用PyHC标准。为了更清楚地了解这些标准是什么,以及它们如何适应第2.3.4节中概述的分级系统,这些标准在下面的图1这些标准及其定义直接从Annex et al. ( 2018年)。2.3. PyHC作为太阳物理学框架PyHC在成员、项目和活动方面都有很大的扩展。社区在满足太阳物理学框架需求方面的立场,如Burrell等人所述。为了实现这一目标,以下主题被认为是确保PyHC包对社区有用所必需的为了减少冗余和重复的电子邮件:太阳物理学Python包信息的集中化,J. Barnum等人空间研究进展xxx(xxxx)xxx3图1.一、 PyHC标准分组(用于项目自我评估)及其相关标准和定义(如附件等中所定义, 2018年)。年龄可访问性,软件属性,最佳实践和所提供工具的严格性(Burrell等人(2018))。现在我们2.3.1. 集中Burrell等人(2018)指出,社区需要一个集中的位置,可以找到与所有当前使用和维护的太阳物理学Python软件包相关的信息。包是指以一个名称链接在一起的Python模块的集合。请注意,在本文中,项目和包可以互换使用为此,PyHC处理的第一个活动之一是创建PyHC网站(https://heliopython.org)。该网站现在为那些有兴趣发现PyHC所要提供的一切的人提供了有关太阳物理学Python软件包的信息在PyHC站点的项目部分其中,PyHC 成 员 和 外 部 人 员 都 可 以 找 到 当 前 的 开 源Heliophysics Python包。目前,有62个PyHC-a项目包含在这个页面上,它们运行太阳物理学领域的所有领域(太阳,太阳风,磁层,以及电离层,热层和中间层研究)。这些软件包包括广泛的功能(例如建模、机器学习、绘图、坐标变换、其他库的包装器和CDF编写器)。还提供了有关每个软件包的整体功能、联系信息、软件包代码库和文档的链接以及与以下内容相关的“等级“(参见第2.3.4节)的信息各种分组的的PyHC标准(see图1)。请参阅附录A以获得包的列表,以及每个包功能的简短描述软件包分为两类:J. Barnum等人空间研究进展xxx(xxxx)xxx4核心包每个核心包都在各自的领域提供了广泛的功能,并 符 合 PyHC 社 区 标 准 。 目 前 的 核 心 包 是PlasmaPy 、 pysat 、 pySPEDAS 、 SpacePy 和SunPy。最初,核心包是由最初的PyHC组织者选择的。目前,核心包的包含是基于LASP和NASAPyHC领导层以及当前PyHC核心包的决定。‘‘Other这一类别包括符合PyHC精神的软件包,但它们的功能更具体。PyHC网站还在其Gallery部分提供了越来越多的不同类型的PyHC示例。本页包含PyHC包中的科学用例示例。该库由Sphinx(Brandl,2021)提供支持,Sphinx是一种用于创建文档(特别是Python文档)的工具它的标记语言基于reStructuredText,这是一种纯文本、标记语法和解析器系统(Goodgerplo,2022)。 Sphinx生成并显示了Swyter笔记本(Kluyver等人,2016),它们是生成和共享计算文档的web应用。PyHC Gallery中的Pyuyter Notebooks使用Binder链接来允许最终用户与它们进行交互活页夹链接提供了“一个运行和交互式服务的环境... “Pyhc notebooks”,它允许最终用户查看PyHCGallery中的笔记本并与之交互(Project Pyhc notebooks等人,2018年)。此外,用户还可以将这些Python笔记本(或Python源代码)下载到本地工作站,以便进一步演示和/或与他人共享。电子商务正在创造更多的例子(特别是与项目间整合有关的例子)。该网站显示有关社区本身的信息,包括。主页由PyHC使命宣言、战略目标和社区最近的博客文章组成。链接到PyHC半年度报告、PyHC标准等的会议页面,包含PyHC 每两周一次的tele-cons链接,PyHC Google日历,过去一年两次会议信息的链接,以及相关会议(例如,链接到即将在AGU举行的PyHC海报会议)。● PyHC People页面(包含成员的GitHub页面链接● 联系页面。2.3.2. 软件包可访问性在Burrell等人(2018)中,软件包可访问性包括利用自由和开源软件(FOSS),使用FOSS的许可证。根据PyHC标准,所有代码都必须公开提供和开发(Annex et al.,2018年)。项目不需要使用特定的代码托管平台。然而,大多数PyHC包代码都是在GitHub(https://github.com/)中上传和开发的;其他项目选择使用Gitlab( https://about.gitlab.com/ ) 。 关 于 PyHC 项 目 许 可证,PyHC标准规定项目必须提供许可证。 项目应使用 开 源 科 学 软 件 的 许 可 证 ( Annex et al. , 2018年)。2.3.3. 软件属性从历史上看,对剽窃的恐惧一直是说服科学家改用Python等FOSS开发项目的关键。Burrell等人(2018)指出,软件引用和鼓励项目合作将有助于缓解这些担忧。这些观点在2021年8月的PyHC集成战略研讨会报告中得到了回应:[软件引用]对PyHC的重要性有四个方面:1)那些对科学事业感兴趣的人需要科学货币来推动这一事业(即,可引用的工作也被同行评审的出版物引用,而不仅仅是潜在的可引用),2)这给了PyHC软件包一个宣传其工具的机会,3)它支持PyHC,推动了我们社区的交易(理想情况下,这将增加PyHC软件包的使用),4)这将向科学家展示数据,软件在科学记录中发挥作用(Thomas等人, 2021年)。目 前 , PyHC 标 准 没 有 直 接 规 定 必 须 引 用 软 件(Annex et al.,2018年)。然而,社区内的各种通信(例如,在tele-cons ,在半年一次的会议上,以及PyHC相关的研讨会上)都鼓励软件包利用数字对象标识符(DOI)来引用他们的软件作为一个整体,以及他们的软件版本。希望这将鼓励更多的科学家将他们的工作转移到自由和开放源码软件,因为DOI为软件开发成果在论文中被引用提供了一种方式。最常建议和使用的DOI生成服务是Zenodo(Nielsen&Smith,2014)。许多PyHC项目已经利用Zenodo(欧洲核研究组织,&OpenAIRE,2013)来生成包括HAPI的DOI(Weigel等人,2021a)、PlasmaPy(PlasmaPy Community等,2018 ) 、 pysat ( Klenzing 等 人 , 2021 ) 、 SpacePy( Morley 等 人 , 2021 ) 、 SunPy ( Mumford 等 人 ,2021 ) 、 ndcube ( Ryan 等 人 ,2021 ) , PyTplot(MAVENSDC等人,2021)和OMMBV(Stoneback等人,2021年)。应该注意的是,大多数核心软件包(以及其他几个)也可以通过天体物理数据系统或ADS找到(Kurtz等人,2000年,他们在那里与他们的Zenodo DOI上市。此外,这些软件包也列在天体物理源代码库或ASCL中(DuPrie等人,2013年)。ASCL将自己定义为天文学家和天体物理学家(包括太阳系天文学家)感兴趣的源代码的免费在线注册表,并列出了已用于●◦●◦●●●J. Barnum等人空间研究进展xxx(xxxx)xxx5发表在或提交给同行评审的出版物的研究。更好地宣传这些DOI的一个简单的下一步是在PyHC网站上创建一个Burrell等人(2018)指出,合作涉及建立在另一个人的工作基础上的道德也就是说,项目需要确保他们正确地与其他软件开发团队合作并引用他们。PyHC标准指出,必须鼓励对包的贡献(Annex 等人,2018年)。为了帮助更容易发现合作机会,PyHC网站在其项目页面下列出了所有PyHC项目。这使得其他太阳物理学开发人员能够找到他们可以贡献,利用和引用的现有项目。PyHC项目也有很多机会在电信会议和半年一次的会议上展示软件开发成果。一种越来越受欢迎的促进协作电子商务的方法是发表引用PyHC软件DOI和其他相关出版物的论文。当然,这仅在PyHC项目创建软件DOI(例如上面指出的那些)或在期刊上发表(例如HAPI的方法论文(Weigel等人,2021b)或pysat(Stoneback等,2018年))。一个更好的解决方案是让这些论文成为协作软件工具论文。这方面的一个例子是可执行文件。Polson(2021)正在撰写这样的论文;这将有望成为许多此类出版物的开始。这些出版物也应该包含在未来的PyHC2.3.4. 最佳实践和严谨性许多科学家没有纯粹的软件工程背景,而是为了开展研究而自学编程语言。为了给科学家提供指导,Burrell等人(2018)概述了科学家在开发软件时应该考虑的几种最佳实践。其中许多都是通过PyHC标准强制和/或推荐的,包括打包规范,操作系统支持,版本控制,编码风格(例如采用PEP 8(van Rossum等人,2013))、文档(与文档字符串和高级文档相关)和Python版本使用。需要提醒的是,Python文档字符串是用于记录Python模块、类、函数或方法的字符串,因此程序员可以理解它的功能,而无需阅读实现的细节。此外,自动生成在线(HTML)文档也是一种常见的做法。这些标准还提供了关于依赖项使用、避免代码重复(尽可能避免)和软件发布的最佳实践建议(Annexet al., 2018年)。项目的“严格性”涉及代码的同行评审和项目软件中几种形式测试的实现(Burrell等人,2018年)。通过PyHC标准中的开放开发要求,所有代码都是公开可用的。任何拉取请求都向社区中的所有人开放,供他们审查和发表评论。同行评审不需要与PyHC相关联但这是值得鼓励的。在测试方面,PyHC标准指出,软件包必须实现单元和集成测试,同时鼓励系统和验收测试,以及在可能的情况下进行自动化测试(Annex etal.,2018年)。虽然提到了代码覆盖率,但没有包括具体的百分比为了告知用户PyHC包是如何衡量PyHC标准的,PyHC实现了一个包的要成为PyHC-a认证的软件包,项目必须根据PyHC标准对自己进行评级,并表明他们的软件满足所有标准,或者正在积极努力满足这些标准。PyHC标准的自分配包https://heliopython.org/projects/绿色表示一个包满足标准分组的要求,黄色表示一个包满足某些要求,红色表示一个包满足很少或不满足任何要求。目前,不符合所有PyHC标准的软件包不会从PyHC中删除。3. 推进PyHC电子商务确定常用的太阳物理学Python软件包,聚集太阳物理学和空间气象社区的主要成员,组织社群活动以帮助社区了解重要的变化,更新等的初步工作,以及确定潜在的合作、整合领域和潜在的新项目的工作正在顺利进行。该社区创建了一个集中的位置(PyHC网站),在该位置下可以找到有关上述所有内容的信息。然而,为了继续作为一个社区发展,仍有一些需要改进的地方。根据2021年3月举行的Mini-ISWAT虚拟会议系列:O2 信 息 架 构 会 议 ( https://iswat-cospar.org/virtual-meeting-series_O2)的建议,PyHC集成策略(IS)研讨会于2021年8月举行。这次由NASA组织的ISWAT研讨会汇集了PyHC社区的主要成员,以及密切相关社区的关键人物,仅限邀请。研讨会让组织者和与会者深入探讨了如何在未来共同推进PyHC的技术工作,特别是优先考虑项目集成,其中提出了关键挑战和相应的潜在解决方案。该研讨会产生了一份公开报告(Thomas等人,2021年),详细介绍了研讨会的成果。其中提出的许多潜在解决方案是解决上述症结以及组织委员会先前未考虑的其他症结的极好起点。解决这些问题将有助于提高效用-J. Barnum等人空间研究进展xxx(xxxx)xxx6PyHC的特性,以及在更广泛的社区中增加PyHC包的使用。下面是关于如何改进PyHC信息架构、其包的使用、可持续性和互操作性的想法,以及PyHC如何在集成和保留重要的非Python代码的实用性方面发挥作用。问题的这些不同方面有着内在的联系,其中任何一个方面的崩溃都会直接影响PyHC的有用性、参与性和生命力。这些想法部分来源于PyHC IS研讨会,PyHC组织的活动中的讨论,以及社区中其他包的知识。3.1. 改进信息结构信息架构(IA)侧重于以有效和可持续的方式组织、构建和标记内容(https://www.usability.gov/what-and-why/in-formation-architecture.html )。经过深思熟虑的IA帮助用户轻松快速地发现信息并使用它是为了实现一个目标。对于PyHC,用户需要能够找到关于社区的信息,涉及的包,以及关于每个项目的信息,包括一般功能,子例程,文档字符串,元数据,分类法和文档。在PyHC网站下收集太阳物理学Python包是创建PyHC IA的第一步。然而,为了完全实现该IA,应考虑对项目文档、PyHC网站的可扩展性和相关社区资源的利用进行其他变更。3.1.1. PyHC项目文档增强PyHC项目文档的一个直接方法是增强PyHC网站的项目页面上的项目描述。这将提高可移植性和实用性。最终目标是使PyHC网站成为目前,每个项目都有一个相应的简短的项目描述,代码、文档和网站的链接,联系人姓名和项目PyHC标准等级。添加到PyHC的其他有用信息项目表应包括。更深入地描述项目功能,以及使用该软件包可以解决哪些科学问题。关于项目例程和函数的信息(包括提取描述每个子例程功能的文档字符串)。这可以从主要项目清单中抽出,单独列成一个表格。“请求“新功能或分析方法的选项这将是一种简单的方法,允许用户识别项目的未来工作,同时通过使软件包的功能更加完整来加强PyHC IA。一个项目的用例示例;目前,只有少数示例被上传到PyHC Gallery。社区应该努力增加其中的示例数量,特别是使用多个PyHC包来实现目标的示例,并考虑在项目表中链接到它们。这些例子不仅有助于以协调一致的方式跨文件介绍各套软件的现有功能,而且还直接展示了这些软件之间的协同作用。指向项目README的链接确保所有项目在文档托管平台上都有官方文档(例如,在readthedocs上的文档;https://readthedocs.org/)在项目页面上列出PyHC包的分类法--这个分类法应该得到社区的认可,并在每个包中使用。实施这些建议将提高用户查找软件包信息的便利性。实施上述更改将确保PyHC项目信息易于查找和访问。然而,这将涉及一致的电子邮件,以确保信息保持最新,但可能会耗费时间。3.1.2. PyHC网站兼容性PyHC IA注意事项并不以更新PyHC项目页面的内容和组织结束。这些信息只有在能够被主要搜索引擎(如Google搜索)轻松找到时才对用户有用,即, 搜索引擎优化(SEO)的必要性。SEO被定义为提高网站或网页在搜索引擎结果页面(SERP)上的可见性的过程,以便 使公司 的网站 更可浏 览( 即, 在第一 页, 见https://www.interaction-design.org/literature/topics/search-engine-optimization)。可以采取多种方法来改善PyHC网站的SEO。一种方法与Python项目文档部分有关,通过从包函数和例程中提取文档字符串信息并将其显示在PyHC网站上。因此,PyHC项目信息将更好这可以通过使用与其他项目文件链接的Intersphinx来实现(https://www.intersphinx)。 sphinx-doc.org/en/master/usage/extensions/intersphinx。html)中。SEO关键字也可以在PyHC博客中使用(除了提高博客的整体使用率),在PyHC项目分类中,在Gallery示例中,等等。项目可以在其网页上创建到PyHC网站的链接,以及在会议和会议演示文稿和报告中创建链接。这将通过单个项目页面的用户向PyHC网站提供更多的流量,但也将提高PyHC网站在搜索引擎结果的前几个链接中显示的机会。此外,PyHC还可以增加外展●●●●●●●J. Barnum等人空间研究进展xxx(xxxx)xxx7电子邮件到他们的社区,并在每个实例中共享到网站的链接。具体而言,PyHC IS研讨会报告中给出了以下推广示例,包括在社区新闻稿中宣传PyHC电信、新版本、软件包改进和功能等,并在会议上宣传PyHC(Thomas等人,2021年)。最后,包括一个引用页面,其中提到PyHC软件包的DOI,以及PyHC项目出版物的链接,也可能增加对PyHC网站的访问3.1.3. 社区资源PyHC 网站的重组和结构调整将改善PyHC 的内部IA。然而,其他组织和个人也创建了工具,当连接到PyHC时,可以帮助改善整个太阳物理学和空间气象社区的IA(包括PyHC网站及其所有资源的初始发现,这自然会增加社区的利用率)。下面我们将介绍一些可以连接到PyHC的资源:LIKED和DIARieS资源、Helio-KNOW和HSO Connect。通常情况下,学习曲线可能相当陡峭,涉及到进入一个新的科学领域时存在什么工具以及如何使用它们,拿起一种新的编程语言,或两者兼而有之。组织所有信息的最佳方式是什么,以便对处于这种位置的人 有 用 ? 在 PyHC 2021 年 秋 季 会 议 期 间 , RebeccaRinguette提出了两种不同的解决方案,有助于回答这个问题(Ringuette,2021)。第一个是“用于发现和实施知识、数据和基础设施资源的LIQUID 知识和发现(LIKED )在线资源”(Ringuette等人,2023 a)。LIKED资源将起到与PyHC类似的作用,因为它将是所有信息的集中位置,其中有人可能对太阳物理学感兴趣。这还将有助于太阳物理学领域的科学家和开发人员相互发现,更好地了解现有资源的范围。LIKED资源作为生态系统的支持,以简化科学成果和环境或DIARieS的发现、实施、分析、复制和共享(Ringuette等人,第2023段b)。因此,在这个生态系统中,科学家可以从发现阶段(喜欢的资源)到共享阶段进行合作,在共享阶段,科学家可以通过交互式研究之旅、仪表板和环境等方式与社区分享他们的研究。在这两个资源的连接框架中然后,DIARieS资源将允许用户使用发现的软件并进行有效的合作研究。为了使PyHC与上述资源无缝连接,Ringuette建议了各种适用于PyHC软件的最低和首选标准。许多这些标准已经被PyHC标准所涵盖dards(Annex等人,2018年)。然而,Ringuette建议应用一定的代码覆盖率(最低80% ,最好是90% 或更高),而我们的标准只规定应该测量我们的测试(代码)覆盖率(Annex et al.,2018 年)。此外,虽然PyHC标准涉及协作,但没有具体提到PyHC软件中的互操 作 性 。 后 者 是 社 区 已 经 开 始 解 决 的 一 个 话 题(Thomas等人,2021),而前者是社区应该在PyHC软件开发中优先考虑的事情,同时考虑在PyHC标准中为两者添加更多的澄清。另一个旨在改进太阳物理学和空间气象界IA的资源一般而言,知识共享区指的是所有资源(例如,软件、数据、组),这些都是社区可以公开使用并由社区管理的。一个真正开放和可访问的知识共享由三个组成部分组成:知识图或KG(例如,实体之间关系的图形表示),当它们结合在一起时,就形成了知识网络,然后知识网络就可供知识界使用。在太阳物理学社区中创建知识图构成知识网络的一个这样的任务是太阳物 理 学 知 识 网 络 ( Helio-KNOW ) 项 目(McGranaghan,2021 b; McGranaghan,2022)。 如该项目的GitHub存储库所述在太阳物理学KG中,PyHC将被认为是软件发现的一个点,其中的工具是研究太阳物理学现象的连接。PyHC将受益于继续支持这一工作,在可能的情况下,通过参与Helio-KNOW领导的研讨会和在线电子竞技来创建太阳物理学工具的知识库;通过Helio-KNOW创建的知识库可以链接到PyHC网站和/或在PyHC网站上展示。此外,PyHC还可以进一步利用KG将PyHC软件与科学用例、一般太阳物理学和空间天气领域联系起来,这有助于增强PyHC与PyHC连接以改善社区IA的基于社区的资源的最后一个例子是NASA太阳物理学系统天文台(HSO Con)和天文台(Kirk等人,2020; Thompson,2021)。正如Thompson(2021)所述,虽然最初是为了与帕克太阳探测器任务合作而创建的,但该资源现在用于创建一个由 卫 星 观 测 和 模 型 数 据 组 成 的 综 合 天 文 台 。HSOConnect通过关键字过滤器为用户提供与太阳能相关的数据和产品,这些过滤器将用户与结果列表联系起来,每个结果列表都包括关于,演示和讨论等信息(例如,GitHub 问 题 等 讨 论 页 面 的 链 接 ) ( Thompson ,2021)。这些产品包括Observa-J. Barnum等人空间研究进展xxx(xxxx)xxx8常规数据、相关数据产品和分析观测结果的基本工具,以及提供对解释数据的模型和模拟的相同访问(Kirk例如,2020年)。为了让所有的PyHC资源都可以通过HSO Connect进行搜索和查找,社区应该共同努力,将所有的PyHC包提交给这个项目。3.2. 成长社区提高PyHC包的使用率、可持续性和社区参与度实际上加强了PyHCPyHC项目的使用和可持续性是齐头并进的;增加包的使用会增加其长期生命力的可能性,并且提供可持续性所需的工具包可能会吸引更多的用户。然后,专注于建立一个积极的,连接,并不断增长的社区本质上提高包装年龄的可持续性和使用。3.2.1. 持续性在太阳物理学社区中,Python软件包的开发和维护通常得到Python专家的支持,这些专家通过竞争性赠款获得资助。这些赠款通常是由于新的发展思路而获得的。另一个人力来源来自科学界,特别是博士和博士后,他们开发自己的软件包或为已知的软件包做出贡献,这要归功于他们自己的研究需要。 因此,python包的开发有点类似于一个太空任务过程中的操作档案。只要空间任务运行,就会向档案库添加新的功能,并定期升级档案库的前端和后端,使其采用最新技术和数据访问协议。但是,当一个太空任务不再运行时,操作存档最终不再支持。然而,在这种情况下,有一个长期的档案设施来保存数据并将其分发给社区(例如,美国航天局空间物理数据设施或SPDF,美国航天局太阳数据分析中心或SDAC,欧洲航天局ESAC 科 学 数 据 中 心 或 ESDC , CNES/CenntredeDonne′esde la Physique des Plasmas或CDPP)。换句话说,需要长期的资金来帮助保持Python项目的最新状态,实现架构补丁,保证Python包之间的功能兼容性,而不仅仅是资助新的想法。例如,在PyHC项目中解决持续集成(CI)和持续开发(CD)的人将明确提高核心PyHC包的可持续性。但PyHC核心开发团队的更多资金当然是不够的。正如我们将在下一节中看到的,这个团队不仅需要找到吸引新用户的方法,还要找到将用户转化为开发人员的方法。3.2.2. 使用使用是将活跃用户转变为有贡献的开发者的关键。为此,PyHC核心团队打算探索三种不同的方法。第一是改进文档和网站。基本上,通过解决PyHC项目文档和网站可发现性问题(见3.1节),这将有助于提高用户利用PyHC及其资源的能力。此外,本文档需要满足专家和新来者的需求。提高PyHC python包使用率的第二个方面更多信息,请参阅第3.2.3节。第三 提高使用率的方法是找到定期连接社区的方法这可以通过不同的渠道实现,如网络研讨会,社交媒体,新闻简报,黑客松,动手工作坊,暑期学校和会议。由于人力有限,PyHC平台只提供部分支持。最后,新的太阳物理学任务应由其资助机构/代理鼓励从第一天起就使用PyHCpython包。关于最后两点的更多内容将在下面的3.2.3节中看到。3.2.3. 社区外联和参与PyHC的社交方面,虽然本质上更加模糊,但仍然是PyHC发展的重要组成部分。 社区不仅仅是太阳物理Python软件,它也是那些聚集在一起致力于维持和推进PyHC电子竞技的所有方面的人。有几种方法可以解决社区参与问题,其中许多是在PyHC IS研讨会上提出的。改善PyHC外展电子竞技将大大有助于改善社区参与。有很多社交媒体工具可以帮助你。例如,PyHCGallery页面中的教程可以共享给一个PyHC的Twitter账户。其中的额外好处是,这很容易达到更广泛的太阳物理学和空间天气社区。Twitch也是一个很好的地方,开发人员可以在黑客项目上会面和合作,或者让彼此此外,已经有许多其他已建立的通讯,PyHC可以发布公告。提高社区参与度的另一个容易实现的成果是重新设计PyHC博客内容。目前它主要由会议公告组成,但是,其他文章可以很容易地添加,例如PyHC Gallery条目的解释,包发布/更新信息,新项目介绍,PyHC包教程/演示示例,以及开发人员对用户常见问题的回答。第三,社区应该考虑用Helio取代或补充当前的Element群聊,J. Barnum等人空间研究进展xxx(xxxx)xxx9~nauts和Slack。Element聊天组没有得到很好的使用,并且无法被搜索引擎索引。Helionauts虽然目前是一个只接受邀请的团体,但正在努力向开放和可由搜索引擎(如Google)搜索的方向发展。最后,一个容易实施的外联方案是采用PyHC这些将由PyHC和核心PyHC项目领导层领导。开放时间将使社区有机会与一些参与最多的PyHC成员会面并提出问题。这些办公时间可通过上述外联方法予以公布。如果没有外部人员参与,开放时间将变成PyHC开发人员之间的共同工作会议。在发展PyHC社区时要考虑的另一个方面是PyHC网站。在第3.1.2节(PyHC网站可发现性)中给出了许多改进PyHC的可发现性、易用性和实用性的建议。实施这些建议的变化增加了PyHC成为最终用户看到的少数搜索结果之一的可能性。此外,这些变更还确保在搜索PyHC网站时,信息可以轻松查找和访问。这些点本质上提高了社区参与度;当信息被证明容易定位和有用时,社区更有可能发展壮大。PyHC Gallery页面上的PyHC教程提供了巨大的潜力,可以从PyHC本身之外吸引更多的用户(和用户更有可能考虑有良好文档的软件,这些软件的示例清楚地显示了软件包的功能如何目前,PyHC Gallery页面只包含一些教程,这些教程涉及很少的科学用例。如何改善这种情况?最简单的攻击角度是生成新的教程,展示带有多个PyHC包的示例,并将它们添加到PyHC Gallery页面。新教程的可能性是无限的;这些软件演示需要鼓励/-在PyHC会议上给予时间,等等。这样做的额外好处是向开发人员/科学家展示如何开始使用软件包,这可以将他们转换为软件包用户。虽然生成新的教程是有用的第一步,但也必须考虑PyHC Gallery的长期可持续性和维护不可复制或复制的教程是没有用的。这个问题的一个可能的解决方案是容器化代码(例如在Docker容器中)。那些提交教程的人,或者另一个指定的人,也可以负责定期更新教程;这将是一个在时间和金钱方面更最后,提交教程的一个关键点是,在当前的设置中,首先提交教程并不简单。电子书(https://jupyterbook.org/intro. HTML)最近被建议作为该问题的解决方案上述建议是向更广泛的PyHC社区提供信息、向他们介绍PyHC包及其功能并向他们举例来看看PyHC如何融入他们的科学工作流程。但是,如果这些成员不能成功地利用PyHC软件,他们将放弃使用PyHC。为此,PyHC可以提供1)PyHC暑期学校(参见第3.2.3.1节),以及2)伙伴/合作设置,其中PyHC
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 黑板风格计算机毕业答辩PPT模板下载
- CodeSandbox实现ListView快速创建指南
- Node.js脚本实现WXR文件到Postgres数据库帖子导入
- 清新简约创意三角毕业论文答辩PPT模板
- DISCORD-JS-CRUD:提升 Discord 机器人开发体验
- Node.js v4.3.2版本Linux ARM64平台运行时环境发布
- SQLight:C++11编写的轻量级MySQL客户端
- 计算机专业毕业论文答辩PPT模板
- Wireshark网络抓包工具的使用与数据包解析
- Wild Match Map: JavaScript中实现通配符映射与事件绑定
- 毕业答辩利器:蝶恋花毕业设计PPT模板
- Node.js深度解析:高性能Web服务器与实时应用构建
- 掌握深度图技术:游戏开发中的绚丽应用案例
- Dart语言的HTTP扩展包功能详解
- MoonMaker: 投资组合加固神器,助力$GME投资者登月
- 计算机毕业设计答辩PPT模板下载
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功