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에 참가하는 특권을 누렸습니다. 올해 프로그램에 선정된 많은 재능 있는 후보자들 중에서 저는 전 세계적으로 상당한 영향을 미치는 실제 오픈 소스 소프트웨어에 기여하도록 선정된 이들 중 한 명이었습니다. 프로그램이 마무리되면서 지난 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단계: Convert_input 함수 강화: 이 단계는 PEcAn의 Convert_input 함수의 복잡성으로 인해 가장 어려운 단계임이 입증되었습니다. 저는 우리가 직면했던 다양한 문제를 해결하기 위한 좋은 접근 방식을 찾는 데 상당한 시간을 투자했습니다. 하지만 이 단계는 또한 이 시점에서 얻은 코드베이스에 대한 훨씬 더 깊은 이해 덕분에 가장 생산적이었습니다.
convert_input 함수의 모듈성을 더욱 향상시키기 위해 #3338에서 이를 더 작은 도우미 함수로 나누기로 결정했습니다. 이러한 구조 조정은 코드베이스의 탐색과 이해를 단순화하여 향후 개발자가 더 쉽게 작업할 수 있게 해줍니다.
GSoC 기간 내내 저는 멘토들과 정기적인 회의(매주 수요일)를 갖고 주간 진행 상황과 향후 계획, 프로젝트 진행 전략에 대해 논의했습니다. 멘토들의 정기적인 지원은 제가 프로젝트에 집중하는 데 큰 도움이 되었습니다.
다른 사람들과 함께 성장하고, 배우고, 협력할 수 있는 놀라운 기회를 제공해준 PEcAn 팀 전체에 깊은 감사를 드립니다. GSoC를 진정으로 독특하게 만드는 것은 여행 자체의 즐거움입니다. 저는 새로운 프로그래밍 언어에 능숙해졌을 뿐만 아니라 매주 회의와 멘토와의 상호 작용을 통해 익숙한 영역에서 벗어나 한 인간으로서도 성장했습니다. 이 경험은 기술적으로나 개인적으로나 큰 변화를 가져왔습니다.
앞으로 저는 PEcAN과 장기적으로 협력하여 제가 할 수 있는 모든 역량을 다해 PEcAN의 역량을 향상시킬 계획입니다!! 지금은 이게 끝이에요!! ??
PEcAn 프로젝트의 내
제목 | 상태 | |
---|---|---|
3359 | DEV-INTRO.md 업데이트병합됨 | |
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 | 마크다운 문서의 오타 및 오류 수정병합됨 | |
3243 | book.yml 업데이트병합됨 | |
3348 | Browndog 제거열려 있는 | |
3338 | 도우미 함수를 통해 작업을 수행하도록 변환 입력을 리팩터링열려 있는 | |
3324 | site.info가 없으면 선택적으로 가져오는 기능 추가열려 있는 | |
3319 | met.process 및 dbfiles 리팩터링열려 있는 |
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3