"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Minha experiência GSoC: Projeto PEcAn

Minha experiência GSoC: Projeto PEcAn

Publicado em 31/08/2024
Navegar:718

My GSoC Experience : PEcAn Project

Sobre PEcAN:

O Predictive Ecosystem Analyzer (PEcAn) é um sistema de fluxo de trabalho científico para gerenciar as imensas quantidades de dados ambientais disponíveis publicamente e um sistema bayesiano de assimilação de dados para sintetizar essas informações em modelos de ecossistemas de última geração.

Resumo do projeto

Organização: Projeto PecAn

Mentores: Christopher Black (#infotroph), Shashank Singh(#moki1202)

Contribuidor: Abhinav Pandey (#Sweetdevil144)

Duração do projeto: 350 horas

Título do projeto: Otimizar PEcAn para uso independente de single
pacotes

Muito obrigado, Chris, por ouvir atentamente minhas abordagens e refiná-las de maneiras muito melhores !!

Um agradecimento especial também a outros mentores: David LeBauer, Shashank Singh e Michael Dietze

Sobre o Projeto:

O objetivo deste projeto foi aprimorar o Projeto PEcAn otimizando seus módulos para uso autônomo. Apesar da estrutura robusta e dos módulos interligados do PEcAn, havia uma necessidade crescente de tornar estes módulos operáveis ​​de forma independente. Essa mudança foi essencial para simplificar o uso, o teste e o desenvolvimento do módulo, tornando o sistema mais acessível e eficiente para usuários e colaboradores. O foco foi na otimização dos módulos para uso autônomo, melhorando sua operacionalidade individual dentro da estrutura interconectada do PEcAn. Nossa principal prioridade era "afrouxar novamente esses acoplamentos", revisitando o design e a interface dos pacotes PEcAn.

Visão geral

Neste verão, tive o privilégio de participar do Google Summer of Code, 2024 com o PEcAn Project. Entre os muitos candidatos talentosos selecionados para o programa deste ano, fui um deles selecionado para contribuir para um software de código aberto do mundo real que tenha um impacto global significativo. À medida que o programa chega ao fim, gostaria de refletir sobre o que aprendi nos últimos três meses com o PEcAn.

Minha jornada com o Projeto PEcAn começou bem antes do período oficial do GSoC, com meu primeiro PR sendo fundido já em dezembro de 2023 – cinco meses antes do cronograma do GSoC. Esse envolvimento inicial me proporcionou uma experiência valiosa na navegação pela arquitetura intrincada e pelo design complexo da base de código do PEcAn. Permitiu-me também familiarizar-me com o trabalho da organização, nomeadamente na linguagem de programação R. Desde aquele início, eu estava ansioso para me aprofundar no projeto e fazer contribuições significativas.

A lição mais valiosa que o GSoC me ensinou é esta: Aprendemos fazendo e pavimentamos o caminho a seguir, mesmo quando o caminho a seguir parece incerto. Minha experiência durante esta jornada do GSoC me mostrou que o que Inicialmente planejei realizar foi apenas uma fração do que finalmente consegui.

Com 15 pull requests, 6 problemas resolvidos e inúmeras horas gastas em reuniões com meus mentores, me vi progressivamente alinhado com os objetivos do Projeto PEcAn.


Minhas contribuições para o PEcAn

(Todo o meu trabalho que irei discutir está vinculado na parte inferior desta página.)

O período GSoC foi estruturado em três fases principais:

  1. Fase 1: Período de vínculo com a comunidade : Durante esta fase, me familiarizei com o projeto e construí fortes conexões com meus mentores. Este tempo me permitiu obter uma compreensão sólida dos objetivos e complexidades do projeto. Comecei fazendo pequenas alterações na base de código enquanto compreendia os principais aspectos do PEcAn. Meus esforços se concentraram na coleta de dados que mais tarde se tornariam cruciais para enfrentar os desafios do projeto.

  2. Fase 2: Desacoplando os pacotes do PEcAn : Minha principal tarefa nesta fase foi começar a desacoplar os pacotes do PEcAn, sendo meu ponto de partida o pacote data.land. Isto envolveu examinar cuidadosamente os pacotes que exigiam melhorias na modularidade e flexibilidade dentro do projeto. Durante esta fase, removi a dependência de data.land do pacote data.atmosphere descobrindo instâncias minúsculas de dependências e redirecionando-as de volta para as chamadas de banco de dados, o que resultou na redução nas dependências gerais. Além disso, também fiz algumas pequenas alterações em Adicionar suítes de teste para met2Cf.csv.R e em Remover a função db.site.lat.lon e substituir todos os usos por query.site . Também combinei várias chamadas de banco de dados, o que ajudou ainda mais a reduzir as chamadas de banco de dados feitas em nosso sistema e a reduzir ainda mais a latência no banco de dados. Também criei um script python personalizado para identificar funções órfãs que não estavam mais sendo utilizadas na base de código e executei limpezas de tais instâncias.

  3. Fase 3: Aprimorando a função convert_input : Esta fase provou ser a mais desafiadora de todas devido à complexidade da função convert_input no PEcAn. Dediquei um tempo significativo para encontrar uma boa abordagem para resolver os vários problemas que enfrentávamos. No entanto, esta fase também foi a mais produtiva, graças ao conhecimento muito mais profundo da base de código que adquiri até esse ponto.

Durante esta fase, propus uma nova função para recuperar opcionalmente site.info por #3324, aumentando a flexibilidade. Além disso, ajudei a refatorar e remover o pacote BrownDog, agora descontinuado, garantindo uma base de código limpa e moderna por meio do #3348. Removi com sucesso todas as instâncias do BrownDog enquanto discutia ativamente essas mudanças com meus mentores.

Para melhorar ainda mais a modularidade da função convert_input, decidi dividi-la em funções auxiliares menores em #3338. Essa reestruturação simplifica a navegação e a compreensão da base de código, facilitando o trabalho de futuros desenvolvedores.

Durante todo o período do GSoC, tive reuniões regulares (todas as quartas-feiras) com meus mentores para discutir nosso progresso semanal, planos futuros e estratégia para avançar no projeto. Essa assistência regular de meus mentores realmente me ajudou a concentrar minha atenção no projeto.

Estou profundamente grato a toda a equipe PEcAn por me proporcionar esta incrível oportunidade de crescer, aprender e colaborar com outras pessoas. O que realmente torna o GSoC único é a alegria da jornada em si. Não só ganhei proficiência em uma nova linguagem de programação, mas também cresci como pessoa, saindo da minha zona de conforto por meio de reuniões semanais e interações com meus mentores. Esta experiência foi transformadora, tanto técnica quanto pessoalmente.

Seguindo em frente, pretendo continuar trabalhando com o PEcAN por um longo prazo e melhorar as capacidades do PEcAN em qualquer capacidade que puder !! Isso é um embrulho por enquanto!! ??

Lista dos meus PRs no Projeto PEcAn?

IDs Título Estado
3359 Atualizar DEV-INTRO.md MERGADO
3312 Combine várias chamadas PEcAn.db em uma única consulta MERGADO
3308 Remova a função db.site.lat.lon e substitua todos os usos por query.site FUNDIDO
3301 Adicionar conjuntos de testes para met2Cf.csv.R MERGADO
3300 Remover a dependência de data.atmosphere de data.land MERGADO
3291 Adicionar script para identificar funções órfãs na base de código MERGADO
3290 Remover inst/met2CF.R não utilizado MERGADO
3283 Atualizar URLs de endpoint da API MERGADO
3281 Corrigir pesquisa de extensão de arquivo na função met2model.SIPNET MERGADO
3276 Atualizar documentação para função cos_solar_zenith_angle MERGADO
3246 Corrigir erros de digitação e erros em documentações de Markdown MERGADO
3243 Atualizar livro.yml MERGADO
3348 Remover Browndog ABRIR
3338 Refator convert_input para executar tarefas por meio da função auxiliar ABRIR
3324 Adicionar função para obter opcionalmente site.info se não estiver presente ABRIR
3319 Refatorar met.process e dbfiles ABRIR
Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/devrx/my-gsoc- Experience-pecan-project-bi0?1 Se houver alguma violação, entre em contato com [email protected] para excluí-la
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3