Прогнозирующий анализатор экосистем (PEcAn) — это научная система рабочих процессов для управления огромными объемами общедоступных данных об окружающей среде и байесовская система ассимиляции данных для синтеза этой информации в рамках современных моделей экосистем.
Организация: PecAn Project
Наставники: Кристофер Блэк (#infotrop), Шашанк Сингх (#moki1202)
Соавтор: Абхинав Пандей (#Sweetdevil144)
Продолжительность проекта: 350 часов
Название проекта: Оптимизация PEcAn для автономного использования одиночных
пакеты
Большое спасибо, Крис, за то, что внимательно выслушал мои подходы и усовершенствовал их в лучшую сторону !!
Особая благодарность другим наставникам: Дэвиду ЛеБауэру, Шашанку Сингху и Майклу Дитце
Целью этого проекта было улучшение проекта PEcAn путем оптимизации его модулей для автономного использования. Несмотря на надежную структуру PEcAn и взаимосвязанные модули, росла потребность в том, чтобы эти модули работали независимо. Этот сдвиг был необходим для упрощения использования, тестирования и разработки модулей, делая систему более доступной и эффективной для пользователей и участников. Основное внимание уделялось оптимизации модулей для автономного использования, повышению их индивидуальной работоспособности в рамках взаимосвязанной структуры PEcAn. Нашим главным приоритетом было «снова ослабить эти связи», пересмотрев дизайн и интерфейс пакетов PEcAn.
Этим летом мне выпала честь принять участие в Google Summer of Code, 2024 вместе с PEcAn Project. Среди многих талантливых кандидатов, отобранных для участия в программе этого года, я был одним из тех, кого выбрали для внесения вклада в создание реального программного обеспечения с открытым исходным кодом, которое имеет значительное глобальное влияние. Поскольку программа подходит к концу, я хотел бы поразмышлять над тем, чему я научился за последние три месяца с PEcAn.
Мое путешествие с Проектом PEcAn началось задолго до официального периода GSoC, а мой первый PR был объединен уже в декабре 2023 года, то есть на пять месяцев раньше срока GSoC. Это раннее участие дало мне ценный опыт работы со сложной архитектурой PEcAn и сложным дизайном кодовой базы. Это также позволило мне ознакомиться с работой организации, в частности, с языком программирования R. С тех первых дней мне хотелось глубже погрузиться в проект и внести значимый вклад.
Самый ценный урок, который преподал мне GSoC, заключается в следующем: Мы учимся на практике и прокладываем путь вперед, даже когда путь вперед кажется неопределенным. Мой опыт во время этого путешествия GSoC показал мне, что Изначально я планировал достичь лишь части того, чего я в конечном итоге достиг.
Благодаря 15 запросам на включение, 6 решенным проблемам и бесчисленным часам, проведенным на встречах с моими наставниками, я постепенно стал соответствовать целям PEcAn Project.
(Все мои работы, которые я буду обсуждать, находятся по ссылкам внизу этой страницы.)
Период GSoC был разделен на три ключевых этапа:
Этап 1: Период взаимодействия с сообществом : На этом этапе я ознакомился с проектом и установил прочные связи со своими наставниками. Это время позволило мне получить четкое представление о целях и тонкостях проекта. Я начал с внесения небольших изменений в кодовую базу, одновременно понимая ключевые аспекты PEcAn. Мои усилия были сосредоточены на сборе данных, которые впоследствии сыграли решающую роль в решении задач проекта.
Фаза 2: Разделение пакетов PEcAn : Моей главной задачей на этом этапе было начать разделение пакетов PEcAn, при этом моей отправной точкой был пакет data.land. Это включало тщательное изучение пакетов, которые требовали улучшения модульности и гибкости в рамках проекта. На этом этапе я удалил зависимость data.land из пакета data.atmSphere, выяснив мельчайшие экземпляры зависимостей и вместо этого перенаправив их обратно на вызовы БД, что привело к уменьшению общего количества зависимостей. В дополнение к этому я также внес некоторые незначительные изменения в Добавление наборов тестов для met2Cf.csv.R и в Удаление функции db.site.lat.lon и замена всех использований на query.site . Я также объединил несколько вызовов БД, что еще больше помогло сократить количество вызовов базы данных в нашей системе и еще больше снизить задержку в БД. Я также создал собственный скрипт Python для выявления потерянных функций, которые больше не используются в базе кода, и выполнил очистку таких экземпляров.
Этап 3: Улучшение функции Convert_input : Этот этап оказался самым сложным из всех из-за сложности функции Convert_input в PEcAn. Я посвятил значительное время поиску хорошего подхода к решению различных проблем, с которыми мы столкнулись. Однако этот этап также оказался наиболее продуктивным благодаря гораздо более глубокому пониманию кодовой базы, которое я получил к этому моменту.
На этом этапе я предложил новую функцию для дополнительного получения site.info по номеру #3324, что повышает гибкость. Кроме того, я помог провести рефакторинг и удалить пакет BrownDog, выпуск которого уже прекращен, обеспечив чистый и современный код через #3348. Я успешно удалил все экземпляры BrownDog, активно обсуждая эти изменения со своими наставниками.
Чтобы еще больше улучшить модульность функции Convert_input, я решил разбить ее на более мелкие вспомогательные функции в #3338. Эта реструктуризация упрощает навигацию и понимание кодовой базы, упрощая работу будущим разработчикам.
На протяжении периода GSoC я регулярно встречался (каждую среду) с моими наставниками, чтобы обсудить наш еженедельный прогресс, планы на будущее и стратегию продвижения проекта. Регулярная помощь моих наставников действительно помогла мне сосредоточить внимание на проекте.
Я глубоко благодарен всей команде PEcAn за то, что они предоставили мне эту невероятную возможность расти, учиться и сотрудничать с другими. Что действительно делает GSoC уникальным, так это радость самого путешествия. Я не только овладел новым языком программирования, но и вырос как личность, выйдя из зоны комфорта благодаря еженедельным встречам и общению с моими наставниками. Этот опыт изменил ситуацию как в техническом, так и в личном плане.
Двигаясь дальше, я планирую продолжать работать с PEcAN в долгосрочной перспективе и улучшать возможности PEcAN всеми возможными способами !! На этом пока закончим!! ??
Идентификаторы | Заголовок | Состояние |
---|---|---|
3359 | Обновить DEV-INTRO.md | ОБЪЕДИНЕНЫ |
3312 | Объедините несколько вызовов PEcAn.db в одном запросе | ОБЪЕДИНЕНЫ |
3308 | Удалите функцию db.site.lat.lon и замените все ее использование на query.site | ОБЪЕДИНЕНЫ |
3301 | Добавить наборы тестов для met2Cf.csv.R | ОБЪЕДИНЕНЫ |
3300 | Удалить зависимость от data.atmосферы из data.land | ОБЪЕДИНЕНЫ |
3291 | Добавить скрипт для идентификации потерянных функций в базе кода | ОБЪЕДИНЕНЫ |
3290 | Удалить неиспользуемый inst/met2CF.R | ОБЪЕДИНЕНЫ |
3283 | Обновить URL-адреса конечных точек API | ОБЪЕДИНЕНЫ |
3281 | Исправлен поиск расширения файла в функции met2model.SIPNET | ОБЪЕДИНЕНЫ |
3276 | Обновить документацию для функции cos_solar_zenith_angle | ОБЪЕДИНЕНЫ |
3246 | Исправить опечатки и ошибки в документации Markdown | ОБЪЕДИНЕНЫ |
3243 | Обновить book.yml | ОБЪЕДИНЕНЫ |
3348 | Удалить Браундога | ОТКРЫТЬ |
3338 | Рефакторинг Convert_input для выполнения задач с помощью вспомогательной функции | ОТКРЫТЬ |
3324 | Добавьте функцию для дополнительного получения site.info, если она отсутствует | ОТКРЫТЬ |
3319 | Рефакторинг met.process и dbfiles | ОТКРЫТЬ |
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3