Hello, World!

~ No Day But Today ~

(Prequel)Second PR to JuliaAstro
PR info. 9th PR on AstroImages.jl(I only submitted 2 PR before getting selected for JuliaAstro although I had other PRs in other Julia related repos). Task: A FITS file can contain both images and/or tables related to an Astronomical image. So my task was to write something to handle cases when there is no image component present in the file. It’s like adding corner cases. Things used: Nothing specific. But many iterations done due to not knowing standard things. (I was still new to Julia) Back-story My first PR was in and I discovered this one accidentally. I got an error while using a FITS file without an image component. Although we can specify our own index but by default AstroImages treated the first index of FITS as image component. But according to me, the system should be intelligent to handle such know situations (also was finding things to make PRs for). It later turned out to be an important observation. PR evaluation and learnings This PR started with pointing mistakes I did in the PR. I wasn’t familiar with the concept of Multiple Dispatch then and I mixed development practices of Python too. I was opening the same file several times (in Astronomy it can go to GBs too).......
(Prequel)First PR to JuliaAstro: Making Impression
PR info. 7th PR on AstroImages.jl. My first PR to JuliaAstro org. Task: Add a feature to change brightness/contrast of AstroImages in real-time in Jupyter notebook itself. Things used: Interact.jl for interactive Jupyter visualization. Back-story There was a criterion of OpenAstronomy that a student should have at least one PR to the project to be eligible for getting selected into the org. Our mentor Mose told us about this and as AstroImages.jl was a new package, there weren’t enough issues to solve. So he came up with this idea that can be implemented to the package. Lucky me, I have done the same thing before while extending docs of Images.jl. I think this gave me an edge over others. Those days I was also contributing to JuliaText, so managing time for both org. was tuff. But as I knew how to do this, it was a quick PR. PR evaluation and learnings Mose was expecting the same thing which I had made. I also proposed some ideas like we can store this operation and change the data of FITS if the user wants according to this feature. But Mose highlighted that the data is holy, we shouldn’t just modify it just carelessly.......
Final Report GSoC'19: The curtain Falls
With over 2K+ lines of code, 3 repositories and countless discussions, Google Summer of Code 19 with OpenAstronomy (JuliaAstro) came to an end. The following is an attempt to summarize it in words (without the hard parts). Merged Pull Requests Reproject.jl: SLOC -> 586 (Reprojects (a type of image conversion) Astronomical Images from one world coordinate to another.) #1, #2, #3, #4, #5, #6, #7 AstroImages.jl: SLOC -> 1056 (Integration of Astronomical Images with popular Image and Plotting libraries in Julia.) #7, #9, #12, #14, #15, #16, #17, #18, #19, #20, #21, #22, #23, #24 AstroImageView.jl: SLOC -> 604 (A GUI based visualization of AstroImages) #1, #2, #3, #4, #5, #6 With this, I have completed all the things proposed before getting accepted into GSoC. Impact The amount of work done has integrated communities in Julia. Now JuliaAstro can work with JuliaImages, JuliaPlots, and JuliaGraphics. How we deal with astronomical images is different from how we deal with regular everyday images. The integration will now bridge and allow most of the methods coming from JuliaImages to be directly applicable to AstroImages. Plotting is always a great tool to visualize data. Now, with the custom plotting recipes integrated into AstroImages, users can visualize astronomical images on astronomical scales.......
Week 9-10 at JuliaAstro
List of Milestones achieved Interpolator tweak #6 Multi File Support #21 ccd2rbg function #15 data matrix and WCSTransform tuple type parser #7 Support for RGB #22 Basic UI panel for AstroImages #3 Interpolator tweak #6 This patch to Reproject.jl was due to some realizations I had upon Mosè Giordano stressing over the fact that I should use isapprox rather than check_diff (my custom test method) in ccd2rgb PR. I realized that there was something at fault and after investigation, I found that there was a custom method of map_coordinate in original reproject of python version which I didn’t understand at that time and left it (as on large scale both gave same results). It created some differences on the edges of images reprojected. So after many hours of figuring out the trick they used, the check_diff was replaced by isapprox along with a tweak to the interpolator. Multi File Support #21 This PR was completed a long time ago but it’s build was failing on appvyeor viz. Windows build. I too along with my mentor was confused at first because Travis (Linux and Mac) build were all green and the logs in appvyeor were also non-sensical.......
Second Evaluation: 2 months into GSoC
I thought the first month will be the toughest as there lies the trickiest part of the project. But guess what, the second month proved otherwise. But that’s the reality of GSoC, right? Until you have faced the challenges at least once, you won’t grow better to face it the next time. I am glad of the learning experience GSoC has given me. I used to think coming into OSS has improved my skill a lot but now I can see how much still I have to perfect myself. The following is the experience of the 2nd month of my GSoC project. What things I achieved before my second evaluation? 1. Plotting Interface for AstroImage This involved writing a custom recipe for plotting AstroImages. Now using plot(img, header), users can display the world coordinates of AstroImages in the plot itself. 2. Image Interface for AstroImage Adding image interface required AstroImage package to fortify with many small features. But the toughest part was to maintain the performance and write code in a type stable manner. I got to know about mutiple dispatch from my mentor and how Julia is utilizing it to make everything faster and efficient. Additions for Image interface: * Multi Image support #19 * Multi WCS support #20 * Multi File support #21......