PEcAn(예측 생태계 분석기)은 공개적으로 사용 가능한 엄청난 양의 환경 데이터를 관리하는 과학적인 워크플로우 시스템이며, 최첨단 생태계 모델 내에서 이 정보를 종합하는 베이지안 데이터 동화 시스템입니다.
주관: 페칸 프로젝트
멘토: Christopher Black(#infotroph), Shashank Singh(#moki1202)
기고자: Abhinav Pandey(#Sweetdevil144)
프로젝트 기간 : 350시간
프로젝트 제목: 단독 사용을 위한 PEcAn 최적화
패키지
제 접근 방식을 주의 깊게 듣고 더 나은 방법으로 개선해 주신 Chris님, 정말 감사합니다!!
다른 멘토들에게도 특별히 감사드립니다: David LeBauer, Shashank Singh 및 Michael Dietze
이 프로젝트의 목적은 독립 실행형 사용을 위해 모듈을 최적화하여 PEcAn 프로젝트를 개선하는 것이었습니다. PEcAn의 강력한 프레임워크와 상호 연결된 모듈에도 불구하고 이러한 모듈을 독립적으로 작동할 수 있도록 해야 할 필요성이 점점 더 커지고 있었습니다. 이러한 변화는 모듈 사용, 테스트 및 개발을 단순화하여 사용자와 기여자가 시스템에 더 쉽게 접근하고 효율적으로 사용할 수 있도록 하는 데 필수적이었습니다. 독립 실행형 사용을 위해 모듈을 최적화하고 PEcAn의 상호 연결된 프레임워크 내에서 개별 작동성을 향상시키는 데 중점을 두었습니다. 우리의 최우선 과제는 PEcAn 패키지의 디자인과 인터페이스를 재검토하여 "이러한 커플링을 다시 풀어주는 것"이었습니다.
올여름 PEcAn 프로젝트로 Google Summer of Code, 2024에 참가하는 영광을 누렸습니다. 올해 프로그램에 선발된 많은 재능 있는 후보자들 중에서 저는 전 세계적으로 상당한 영향을 미치는 실제 오픈소스 소프트웨어에 기여하도록 선발된 이들 중 한 명이었습니다. 프로그램이 마무리되면서 지난 3개월간 PEcAn을 통해 배운 점을 되돌아보고 싶습니다.
PEcAn 프로젝트와 함께한 나의 여정은 공식 GSoC 기간 훨씬 전에 시작되었으며, GSoC 일정보다 5개월 빠른 2023년 12월에 나의 첫 번째 PR이 병합되었습니다. 이러한 초기 참여는 PEcAn의 복잡한 아키텍처와 복잡한 코드베이스 설계를 탐색하는 귀중한 경험을 제공했습니다. 또한 특히 R 프로그래밍 언어와 관련된 조직의 작업에 익숙해질 수 있었습니다. 저는 초기부터 프로젝트에 더 깊이 참여하고 의미 있는 기여를 하고 싶었습니다.
GSoC가 저에게 가르쳐 준 가장 귀중한 교훈은 다음과 같습니다. 우리는 행동을 통해 배우고, 앞길이 불확실해 보일 때에도 앞으로 나아갈 길을 닦습니다. 이번 GSoC 여정에서 경험한 바에 따르면 처음에 달성하려고 계획한 것은 최종적으로 달성한 것의 일부에 불과했습니다.
15+개의 끌어오기 요청, 6+개의 문제 해결, 멘토와의 회의에 셀 수 없이 많은 시간을 투자하면서 저는 PEcAn의 목표에 점차적으로 부합한다는 것을 알게 되었습니다. 프로젝트.
(제가 논의할 모든 작업은 이 페이지 하단에 링크되어 있습니다.)
GSoC 기간은 세 가지 주요 단계로 구성되었습니다.
1단계: 커뮤니티 결속 기간 : 이 단계에서 저는 프로젝트에 익숙해지고 멘토들과 강한 유대 관계를 구축했습니다. 이번에는 프로젝트의 목표와 복잡성에 대한 확실한 이해를 얻을 수 있었습니다. 저는 PEcAn의 주요 측면을 파악하면서 코드베이스를 약간 변경하는 것부터 시작했습니다. 저는 나중에 프로젝트 과제를 해결하는 데 중요한 데이터를 수집하는 데 집중했습니다.
2단계: PEcAn 패키지 분리 : 이 단계의 주요 작업은 PEcAn 패키지 분리를 시작하는 것이었고, 시작점은 data.land 패키지였습니다. 여기에는 프로젝트 내에서 모듈성과 유연성의 개선이 필요한 패키지를 주의 깊게 검토하는 작업이 포함되었습니다. 이 단계에서는 종속성의 미세한 인스턴스를 파악하고 대신 DB 호출로 다시 리디렉션하여 data.atmosphere 패키지에서 data.land의 종속성을 제거했으며 그 결과 전체 종속성이 감소했습니다. 이 외에도 met2Cf.csv.R에 대한 테스트 모음 추가 및 db.site.lat.lon 기능을 제거하고 모든 사용 위치를 query.site로 교체 . 또한 여러 DB 호출을 결합하여 시스템에서 발생하는 데이터베이스 호출을 줄이고 DB의 대기 시간을 더욱 줄이는 데 도움이 되었습니다. 또한 코드베이스에서 더 이상 활용되지 않는 고아 함수를 찾아내고 그러한 인스턴스를 정리하기 위해 사용자 정의 Python 스크립트를 만들었습니다.
3단계: 변환 입력 기능 향상: 이 단계는 PEcAn의 변환 입력 기능의 복잡성으로 인해 가장 어려운 단계임이 입증되었습니다. 저는 우리가 직면했던 다양한 문제를 해결하기 위한 좋은 접근 방식을 찾는 데 상당한 시간을 투자했습니다. 하지만 이 단계는 코드베이스에 대한 훨씬 더 깊은 이해 덕분에 가장 생산적이기도 했습니다.
convert_input 함수의 모듈성을 더욱 향상시키기 위해 #3338에서 이를 더 작은 도우미 함수로 나누기로 결정했습니다. 이러한 재구성을 통해 코드베이스 탐색 및 이해가 단순화되어 향후 개발자가 더 쉽게 작업할 수 있습니다.
GSoC 기간 동안 저는 멘토들과 정기적인 회의(매주 수요일)를 갖고 주간 진행 상황과 향후 계획, 프로젝트 진행 전략에 대해 논의했습니다. 멘토님들의 정기적인 도움은 제가 프로젝트에 집중하는 데 큰 도움이 되었습니다.
다른 사람들과 함께 성장하고, 배우고, 협력할 수 있는 놀라운 기회를 주신 PEcAn 팀 전체에 깊은 감사를 드립니다. GSoC를 진정으로 독특하게 만드는 것은 여행 자체의 즐거움입니다. 저는 새로운 프로그래밍 언어에 능숙해졌을 뿐만 아니라 매주 회의와 멘토와의 상호 작용을 통해 익숙한 영역에서 벗어나 한 인간으로서도 성장했습니다. 이 경험은 기술적으로나 개인적으로 큰 변화를 가져왔습니다.
앞으로 저는 PEcAN과 장기적으로 계속 협력하여 제가 할 수 있는 모든 역량을 다해 PEcAN의 역량을 향상시킬 계획입니다!! 지금은 이게 끝이에요!! ??
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 |
위 내용은 나의 GSoC 경험 : PEcAn 프로젝트의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!