首页 > web前端 > js教程 > 我的 GSoC 经验:PEcAn 项目

我的 GSoC 经验:PEcAn 项目

WBOY
发布: 2024-08-22 18:52:33
原创
567 人浏览过

My GSoC Experience : PEcAn Project

关于PEcAN:

预测生态系统分析器 (PEcAn) 是一个科学工作流程系统,用于管理大量公开可用的环境数据和贝叶斯数据同化系统,用于在最先进的生态系统模型中综合这些信息。

项目概要

组织:PecAn Project

导师:Christopher Black (#infotrop)、Shashank Singh(#moki1202)

贡献者:Abhinav Pandey (#Sweetdevil144)

项目持续时间: 350 小时

项目标题:优化 PEcAn 以独立使用单个
套餐

非常感谢克里斯,您仔细聆听我的方法并以更好的方式改进它们!!

特别感谢其他导师:David LeBauer、Shashank Singh 和 Michael Dietze

关于该项目:

该项目的目标是通过优化其独立使用的模块来增强 PEcAn 项目。尽管 PEcAn 具有强大的框架和互连的模块,但越来越需要使这些模块独立运行。这种转变对于简化模块使用、测试和开发至关重要,使系统对用户和贡献者来说更容易访问和更高效。重点是优化独立使用的模块,增强它们在 PEcAn 互连框架内的单独可操作性。我们的首要任务是通过重新审视 PEcAn 包的设计和界面来“重新松开这些耦合”。

概述

今年夏天,我有幸与 PEcAn 项目一起参加 2024 年 Google 编程之夏。在今年计划中选出的众多才华横溢的候选人中,我是其中之一,被选为具有重大全球影响力的现实世界开源软件做出贡献。随着计划接近尾声,我想回顾一下过去三个月在PEcAn中学到的东西。

我的 PEcAn 项目 之旅早在官方 GSoC 周期之前就开始了,我的 第一个 PR 早在 2023 年 12 月就被合并了——比 GSoC 时间表提前了五个月。这种早期的参与给了我宝贵的经验,让我能够了解 PEcAn 复杂的架构和复杂的代码库设计。它还让我熟悉了该组织的工作,特别是 R 编程语言。从早期开始,我就渴望更深入地参与该项目并做出有意义的贡献。

GSoC 教给我的最有价值的一课是:我们通过实践来学习,即使前方的道路似乎不确定,我们也会铺平前进的道路。我在这次 GSoC 之旅中的经历向我展示了什么我最初计划完成的只是我最终实现的一小部分。

随着 15+ 个拉取请求、6+ 个问题的解决以及与导师的会议上花费的无数时间,我发现自己逐渐与 PEcAn 的目标保持一致项目.


我对 PEcAn 的贡献

我将要讨论的所有工作都链接在此页面底部。

GSoC 时期分为三个关键阶段:

  1. 第一阶段:社区联系期:在这个阶段,我熟悉了这个项目,并与我的导师建立了牢固的联系。这一次让我对项目的目标和复杂性有了深入的了解。我首先对代码库进行了一些小的更改,同时掌握了 PEcAn 的关键方面。我的工作重点是收集数据,这些数据后来对于解决项目挑战至关重要。

  2. 阶段 2:解耦 PEcAn 的包:此阶段的主要任务是开始解耦 PEcAn 的包,起点是 data.land 包。这涉及仔细检查项目中需要改进模块化和灵活性的包。在此阶段,我通过找出依赖项的微小实例并将其重定向回数据库调用,从 data.atmosphere 包中删除了 data.land 的依赖项,从而减少了总体依赖项。除此之外,我还对 为 met2Cf.csv.R 添加测试套件删除 db.site.lat.lon 函数并将所有用法替换为 query.site .我还组合了多个数据库调用,这进一步有助于减少我们系统中进行的数据库调用,并进一步减少数据库上的延迟。我还创建了一个自定义 python 脚本来查明代码库中不再使用的孤立函数,并执行了此类实例的清理。

  3. 阶段3:增强convert_input函数:由于PEcAn中convert_input函数的复杂性,这个阶段被证明是最具挑战性的。我投入了大量时间来寻找解决我们所面临的各种问题的好方法。然而,由于此时我对代码库有了更深入的了解,这个阶段也是最有成效的。

在此阶段,我提出了一个新函数,可以通过 #3324 选择性地检索 site.info,从而增强灵活性。此外,我还帮助重构并删除了现已停产的 BrownDog 软件包,通过 #3348 确保了干净且现代的代码库。我成功删除了 BrownDog 的所有实例,同时与我的导师积极讨论这些更改。

为了进一步提高convert_input函数的模块化,我决定在#3338中将其分解为更小的辅助函数。这种重组简化了代码库的导航和理解,使未来的开发人员更容易使用。

在整个 GSoC 期间,我与导师定期举行会议(每周三),讨论我们每周的进展、未来计划和项目推进的策略。导师的定期帮助确实帮助我将注意力集中在该项目上。

我非常感谢整个 PEcAn 团队为我提供了这个难得的成长、学习和与他人合作的机会。真正让 GSoC 与众不同的是旅程本身的乐趣。我不仅熟练掌握了一门新的编程语言,而且我作为一个人也得到了成长,通过每周的会议和与导师的互动走出了我的舒适区。这段经历无论是在技术上还是对个人来说都是变革性的。

接下来,我计划继续与 PEcAN 长期合作,并尽我所能提高 PEcAN 的能力!现在就这样了! ??

我在 PEcAn 项目中的 PR 列表?

ID 标题 状态 标题> 3359 更新DEV-INTRO.md
IDs Title State
3359 Update DEV-INTRO.md MERGED
3312 Combine multiple PEcAn.db calls in a single query MERGED
3308 Remove db.site.lat.lon function and replace all usages with query.site MERGED
3301 Add test suites for met2Cf.csv.R MERGED
3300 Remove dependency on data.atmosphere from data.land MERGED
3291 Add Script to Identify Orphaned Functions in Codebase MERGED
3290 Remove unused inst/met2CF.R MERGED
3283 Update API endpoint URLs MERGED
3281 Fix file extension search in met2model.SIPNET function MERGED
3276 Update Documentation for cos_solar_zenith_angle Function MERGED
3246 Fix Typo Errors and Errors in Markdown documentations MERGED
3243 Update book.yml MERGED
3348 Remove Browndog OPEN
3338 Refactor convert_input to Perform tasks via helper function OPEN
3324 Add function to Optionally get site.info if not present OPEN
3319 Refactor met.process and dbfiles OPEN
已合并 3312 在单个查询中组合多个 PEcAn.db 调用 已合并 3308 删除 db.site.lat.lon 函数并将所有用法替换为 query.site 已合并 3301 添加met2Cf.csv.R测试套件 已合并 3300 从 data.land 中删除对 data.atmosphere 的依赖 已合并 3291 添加脚本以识别代码库中的孤立函数 已合并 3290 删除未使用的inst/met2CF.R 已合并 3283 更新 API 端点 URL 已合并 3281 修复met2model.SIPNET功能中的文件扩展名搜索 已合并 3276 更新 cos_solar_zenith_angle 函数文档 已合并 3246 修复拼写错误和 Markdown 文档中的错误 已合并 3243 更新book.yml 已合并 3348 删除 Browndog 打开 3338 重构convert_input以通过辅助函数执行任务 打开 3324 添加功能,可选择获取 site.info(如果不存在) 打开 3319 重构met.process和dbfiles 打开 表>

以上是我的 GSoC 经验:PEcAn 项目的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板