Skip to content

Instantly share code, notes, and snippets.

@gopi487krishna
Last active December 14, 2020 14:14
Show Gist options
  • Save gopi487krishna/c2f40cdd8230c9b4ecd9eb20c5c6fc26 to your computer and use it in GitHub Desktop.
Save gopi487krishna/c2f40cdd8230c9b4ecd9eb20c5c6fc26 to your computer and use it in GitHub Desktop.
Summary of the Work Done during GSOC period

FITS ( Flexible Image Transport System ) is an open standard defining a digital file format that serves as the de facto standard for storage, transmission, and processing of astronomical data. It provides support for storing images, multidimensional data in the form of tables.

During the GSoC period, my task was to complete the development of the existing FITS parser. That involved improvising the current FITS parser and developing an external API for communicating with the FITS module.

For a better understanding of the FITS module, the first few weeks( during the community bonding period) were spent in writing Unit tests and completing the documentation for the existing codebase. It helped me in understanding the idealogy and design of the previous fits codebase/module.

During the second phase, our primary concern was to complete the reading part of the FITS module. We replaced the existing code of the FITS module ( HDU, header, card parsing) with a policy-based design on the principles of Andrei Alexandrescu to make the library as much extensible as possible. Our main motto here was to reduce the friction that people would face while using the library. During this phase, we also faced a lot of performance problems due to the dynamic nature of FITS files ( Here "dynamic" refers to the deduction of "type" of data at runtime ). To improve the performance, we moved a large part of parsing from runtime to compile-time and used boost spirit for parsing and variant types to handle the "type" of data. This helped us improve performance by a large factor.

During the Third and the last Phase of GSoC, we implemented the writing portion of the FITS module. We also implemented a 2 level caching system for lazy parsing of data. It helped us in improving the performance of both the reading and writing portion of the FITS module.

@Nikhil1602
Copy link

Hi, gopi487krishna I found you from GSOC website. My name is Nikhil and I am 2nd year BCA student. Since you have taken part in GSOC previously. I need your help regarding this. I am beginner to open source world, I have some basic knowledge of C/C++, Data Structure and Algorithms. And I am interested in taking part in GSOC 2021, so I want guidance from you that how to prepare for it. what things should I learn to take part in GSOC. Will you help me ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment