予測生態系アナライザー (PEcAn) は、公的に利用可能な膨大な量の環境データを管理する科学的ワークフロー システムと、この情報を最先端の生態系モデル内で統合するためのベイジアン データ同化システムです。
組織: PecAn プロジェクト
メンター: Christopher Black (#infotroph)、Shashank Singh (#moki1202)
投稿者: Abhinav Pandey (#Sweetdevil144)
プロジェクト期間 : 350 時間
プロジェクト タイトル : 単一の自立使用用に PEcAn を最適化します
パッケージ
クリス、私のアプローチを注意深く聞いて、より良い方法で改良してくれて本当にありがとう!!
他の指導者にも特別な感謝を捧げます:David LeBauer、Shashank Singh、Michael Dietze
このプロジェクトの目的は、モジュールをスタンドアロンで使用できるように最適化することで PEcAn プロジェクトを強化することでした。 PEcAn の堅牢なフレームワークと相互接続されたモジュールにもかかわらず、これらのモジュールを独立して動作可能にする必要性が高まっていました。この移行は、モジュールの使用、テスト、開発を簡素化し、ユーザーや貢献者にとってシステムをよりアクセスしやすく効率的にするために不可欠でした。焦点は、スタンドアロン使用向けにモジュールを最適化し、PEcAn の相互接続されたフレームワーク内での個々の操作性を強化することでした。私たちの最優先事項は、PEcAn パッケージの設計とインターフェイスを再検討することで、「これらの結合を再度緩める」ことでした。
この夏、私は PEcAn プロジェクト とともに Google Summer of Code, 2024 に参加する機会に恵まれました。今年のプログラムに選ばれた多くの才能ある候補者の中で、私もその中の 1 人であり、世界的に大きな影響を与える現実世界の オープンソース ソフトウェア に貢献するために選ばれました。プログラムも終わりに近づいてきたので、PEcAn で過去 3 か月間学んだことを振り返りたいと思います。
私の PEcAn プロジェクト の旅は、正式な GSoC 期間のかなり前に始まり、私の 最初の PR は、GSoC タイムラインより 5 か月早い 2023 年 12 月にマージされました。この初期の関与により、PEcAn の複雑なアーキテクチャと複雑なコードベース設計をナビゲートする貴重な経験が得られました。また、この組織の仕事、特に R プログラミング言語 について詳しく知ることができました。初期の頃から、私はプロジェクトに深く入り込み、有意義な貢献をしたいと熱望していました。
GSoC が私に教えてくれた最も貴重な教訓は次のとおりです。私たちは実践することで学び、たとえ先行きが不確実であるように見えても、前進する道を切り開きます。この GSoC の旅での私の経験は、次のことを示しました。当初達成する予定だったものは、最終的に達成したもののほんの一部にすぎません。
15 のプル リクエスト、6 の問題が解決され、メンターとのミーティングに数えきれないほどの時間を費やした結果、PEcAn プロジェクト.
(これから説明する私の作品はすべて、このページの下部にリンクされています。)
GSoC 期間は 3 つの主要なフェーズで構成されていました:
フェーズ 1: コミュニティの絆期間 : このフェーズでは、プロジェクトに慣れ、メンターとの強いつながりを築きました。今回はプロジェクトの目標と複雑さをしっかりと理解することができました。私は、PEcAn の重要な側面を把握しながら、コードベースに小さな変更を加えることから始めました。私の取り組みは、後にプロジェクトの課題に取り組む上で重要となるデータの収集に重点を置きました。
フェーズ 2: PEcAn のパッケージの分離 : このフェーズでの私の主なタスクは、data.land パッケージから開始して、PEcAn のパッケージの分離を開始することでした。これには、プロジェクト内のモジュール性と柔軟性の改善が必要なパッケージを慎重に検討することが含まれていました。このフェーズでは、依存関係の微細なインスタンスを特定し、代わりに DB 呼び出しにリダイレクトして戻すことで、data.atmosphere パッケージから data.land の依存関係を削除しました。これにより、全体的な依存関係が削減されました。これに加えて、met2Cf.csv.R のテスト スイートを追加、db.site.lat.lon 関数を削除し、すべての使用箇所を query.site に置き換えにいくつかの小さな変更を加えました。 &&&] 。また、複数の DB 呼び出しを組み合わせました。これにより、システム内で行われるデータベース呼び出しが減り、DB での待ち時間がさらに短縮されました。また、コードベースで使用されていない孤立した関数を特定し、そのようなインスタンスのクリーンアップを実行するカスタム Python スクリプトも作成しました。
フェーズ 3: Convert_input 関数の拡張 : PEcAn の Convert_input 関数が複雑なため、このフェーズは最も困難であることが判明しました。私たちは、私たちが直面していたさまざまな問題に取り組むための良いアプローチを見つけるためにかなりの時間を費やしました。ただし、この段階で得たコードベースの理解がさらに深まったため、このフェーズは最も生産的でもありました。
このフェーズ中に、オプションで #3324 によって site.info を取得して柔軟性を高める新しい関数を提案しました。さらに、現在は廃止されている BrownDog パッケージのリファクタリングと削除を支援し、#3348 を通じてクリーンで最新のコードベースを確保しました。これらの変更についてメンターと積極的に話し合いながら、BrownDog のすべてのインスタンスを正常に削除しました。
convert_input 関数のモジュール性をさらに向上させるために、#3338 で関数をより小さなヘルパー関数に分割することにしました。この再構築により、コードベースのナビゲーションと理解が簡素化され、将来の開発者が作業しやすくなります。
GSoC 期間中、私はメンターと定期的に (毎週水曜日に) ミーティングを開き、毎週の進捗状況、将来の計画、プロジェクトを進めるための戦略について話し合いました。メンターからの定期的なサポートのおかげで、プロジェクトに集中することができました。
私に成長し、学び、他の人々と協力するこの素晴らしい機会を提供してくれたPEcAnチーム全員に深く感謝しています。 GSoC を本当にユニークなものにしているのは、旅そのものの喜びです。私は新しいプログラミング言語の熟練度を獲得しただけでなく、毎週のミーティングやメンターとの交流を通じて、自分のコンフォートゾーンから抜け出し、人間としても成長しました。この経験は技術的にも個人的にも変革をもたらしました。
今後も、PEcAN と長期的に協力し続け、できる限りあらゆる方法で PEcAN の機能を向上させるつもりです。とりあえずこれで終わりです!! ??
ID | タイトル | 州 |
---|---|---|
3359 | DEV-INTRO.md を更新 | マージ済み |
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 をリファクタリングする | 開ける |
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3