Пятая часть продолжающейся серии сообщений в моем блоге о моем опыте участия в Google Summer of Code. Я работаю с Sunpy над их набором инструментов для обработки солнечных изображений, Sunkit-image. На данный момент прошло уже два месяца, и это был полезный опыт. Вторая оценка тоже не за горами, и я очень надеюсь, что смогу пройти ее.

В этом посте я описываю последние две недели своей работы, которая по сути была всего лишь одной рабочей неделей, так как неделю я был в отпуске. Я уже обсудил со своими наставниками возможность взять отпуск, и они согласились, если я смогу компенсировать потерянное время.

Теперь перейдем к деталям работы за прошедшую неделю. Я работал над написанием оболочки Python для кода FLCT C. Отслеживание линейной корреляции Фурье — это алгоритм, который находит поле 2D-потока между двумя изображениями, снятыми с близким интервалом друг от друга. Ранее я написал оболочку для подпрограмм основного кода FLCT. В течение этой недели я исправил исходную оболочку для подпрограмм, а также реализовал основной файл FLCT, который делает FLCT доступным в python.

На данный момент в моем коде скрыто несколько ошибок, за которыми усердно охотятся. Надеюсь, код скоро будет без ошибок. Я также одновременно работаю над тестированием и документированием подпакета. Вся упаковка была выполнена с использованием Cython, где массивы numpy были преобразованы в C-совместимые типы, такие как указатели или указатель на указатели.

В целом этот конкретный раздел работы был очень интересным. Это был первый раз, когда я использовал Cython, и мощь, которую он обеспечивает для использования кода C в простом Python, потрясающая. Знание этого открывает различные возможности оптимизации в других функциях Python.

Надеюсь, вам понравилось это читать. Следите за дальнейшими обновлениями!!!

Обновление:

Я очень рад сообщить, что успешно прошел вторую оценку. Это были замечательные два месяца, когда мы узнали и реализовали так много вещей. Конец приближается. Пожалуйста, ознакомьтесь с Часть 6: Достижение вершины для получения дополнительных интересных подробностей о FLCT и о том, как мы исправили его ошибки.