Hello, World!

~ No Day But Today ~

GSoC winning Proposal
After forming many strategies and improvising them along the way, I decided that I will submit 2 proposals for GSoC 2019. Originally there is a limit of 3 proposals per student but as I started preparing from Nov 2018, I had enough time to curate 2 strong proposals. The proposal which got me GSoC’19 is: Visualization of astronomical images in Julia (Proposal) And my other proposal got me JSoC’19 (which I couldn’t pursue due to GSoC rules). I will add that too when I’m sure that it is of no use to me anymore and I can’t resubmit it XD; Some Tips for writing a good proposal Keep it short and under 10-12 pages long. No one has enough time to read 20 pages. Use hyperlinks if you want to explain something more but don’t have space. Try to follow the format which I have used. I have seen, compared and analyzed many proposals and this format covers most of the necessary things while keeping length into account. Make sure to include some of your previous work which can help the mentors analyze your quality of work. Approach your mentors early to get feedback on your proposal and make final changes 3-4 days before the deadline.......
(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.......