ホームページ > ウェブフロントエンド > jsチュートリアル > 私の GSoC 体験 : PEcAn プロジェクト

私の GSoC 体験 : PEcAn プロジェクト

WBOY
リリース: 2024-08-22 18:52:33
オリジナル
544 人が閲覧しました

My GSoC Experience : PEcAn Project

ピーカンについて:

予測生態系アナライザー (PEcAn) は、公的に利用可能な膨大な量の環境データを管理する科学的ワークフロー システムと、最先端の生態系モデル内でこの情報を統合するベイジアン データ同化システムです。

プロジェクトの概要

組織: PecAn プロジェクト

メンター: Christopher Black (#infotroph)、Shashank Singh (#moki1202)

投稿者: Abhinav Pandey (#Sweetdevil144)

プロジェクト期間: 350 時間

プロジェクト タイトル : 単一の
を自立して使用できるように PEcAn を最適化します。 パッケージ

クリス、私のアプローチを注意深く聞いて、より良い方法で改良してくれて本当にありがとう!!

他のメンターにも特に感謝します:David LeBauer、Shashank Singh、Michael Dietze

プロジェクトについて:

このプロジェクトの目的は、モジュールをスタンドアロンで使用できるように最適化することで PEcAn プロジェクトを強化することでした。 PEcAn の堅牢なフレームワークと相互接続されたモジュールにもかかわらず、これらのモジュールを独立して動作可能にする必要性が高まっていました。この移行は、モジュールの使用、テスト、開発を簡素化し、ユーザーや貢献者にとってシステムをよりアクセスしやすく効率的にするために不可欠でした。焦点は、スタンドアロン使用向けにモジュールを最適化し、PEcAn の相互接続されたフレームワーク内での個々の操作性を強化することでした。私たちの最優先事項は、PEcAn パッケージの設計とインターフェイスを再検討することで、「これらの結合を再度緩める」ことでした。

概要

この夏、私は PEcAn プロジェクト とともに 2024 年 Google Summer of Code に参加する機会に恵まれました。今年のプログラムに選ばれた多くの才能ある候補者の中で、私もその中の 1 人であり、世界的に大きな影響を与える現実世界のオープンソース ソフトウェア に貢献するために選ばれました。プログラムも終わりに近づいてきたので、PEcAn で過去 3 か月間学んだことを振り返りたいと思います。

PEcAn プロジェクトに関する私の旅は、正式な GSoC 期間のかなり前に始まり、私の最初の PR は、GSoC タイムラインより 5 か月早い 2023 年 12 月にマージされました。この初期の関与により、PEcAn の複雑なアーキテクチャと複雑なコードベース設計をナビゲートする貴重な経験が得られました。また、この組織の活動、特にR プログラミング言語 について詳しく知ることができました。初期の頃から、私はプロジェクトに深く入り込み、有意義な貢献をしたいと熱望していました。

GSoC が私に教えてくれた最も貴重な教訓は次のとおりです。私たちは実践することで学び、たとえ前途が不確実であるように見えても、前進する道を切り開きます。 この GSoC の旅での私の経験は、次のことを私に示しました。私が当初達成しようと計画していたものは、最終的に達成したもののほんの一部にすぎません。

15+ 件のプル リクエスト、6+ 件の問題の解決、メンターとのミーティングに数えきれないほどの時間を費やした結果、私は PEcAn の目標と徐々に一致していることに気づきました。プロジェクト.


PEcAn への私の貢献

(これから説明する私の作品はすべて、このページの下部にリンクされています。)

GSoC 期間は 3 つの主要なフェーズで構成されていました。

  1. フェーズ 1: コミュニティの絆期間 : このフェーズでは、私はプロジェクトに慣れ、メンターとの強いつながりを築きました。今回はプロジェクトの目標と複雑さをしっかりと理解することができました。私は、PEcAn の重要な側面を把握しながら、コードベースに小さな変更を加えることから始めました。私の取り組みは、後にプロジェクトの課題に取り組む上で重要となるデータの収集に重点を置きました。

  2. フェーズ 2: PEcAn のパッケージの分離 : このフェーズでの私の主なタスクは、data.land パッケージから開始して、PEcAn のパッケージの分離を開始することでした。これには、プロジェクト内のモジュール性と柔軟性の改善が必要なパッケージを慎重に検討することが含まれていました。このフェーズでは、依存関係の微細なインスタンスを特定し、代わりに DB 呼び出しにリダイレクトして戻すことで、data.atmosphere パッケージから data.land の依存関係を削除しました。これにより、全体的な依存関係が削減されました。これに加えて、met2Cf.csv.R のテスト スイートを追加db.site.lat.lon 関数を削除し、すべての使用箇所を query.site に置き換える という小さな変更も加えました。 🎜> 。また、複数の DB 呼び出しを組み合わせました。これにより、システム内で行われるデータベース呼び出しが減り、DB での待ち時間がさらに短縮されました。また、コードベースで使用されなくなった孤立した関数を特定し、そのようなインスタンスのクリーンアップを実行するカスタム 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 呼び出しを 1 つのクエリに結合する 結合されました 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 タイプミスとマークダウンドキュメントのエラーを修正 結合されました 3243 book.yml を更新 結合されました 3348 ブラウンドッグを削除 オープン 3338 ヘルパー関数を介してタスクを実行するために、convert_input をリファクタリングします オープン 3324 site.info が存在しない場合はオプションで取得する機能を追加 オープン 3319 met.process と dbfiles をリファクタリングする オープン

以上が私の GSoC 体験 : PEcAn プロジェクトの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート