首頁 > web前端 > js教程 > 我的 GSoC 經驗:PEcAn 項目

我的 GSoC 經驗:PEcAn 項目

WBOY
發布: 2024-08-22 18:52:33
原創
564 人瀏覽過

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
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板