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. But I saw EBUSY error somewhere there and thanks to a PR I solved getting the same error, I concluded that I was messing with a file I/O somewhere. Windows build is very picky about that, it just needs to be good. So, many experiments followed to identify the cause. The problem was not closing FITS file upon reading them, both in test and source. It gets closed automatically only in a do block and I didn’t know that.

So close the files you open XD !!

ccd2rbg function #15

Upon the Interpolator tweak, I thought this will in easy. But floating point inaccuracies!! So in different platforms like Linux or Windows, the floating-point arithmetic is different and a small difference of order 1e-26 may be seen between computations. So, you can equate results with == to test your results. OK, so tests the approximate results than using isapprox. But what if the values associated with your image are also of order 1e-26. So, a small floating point error will be very large speaking relatively and your isapprox with rtol will not pass. I realized that in a scale of 0 to 1, numbers small as 1e-26 in the image are not that significant. So a rounded result up to 10 decimals did the trick.

So yeah, realizations are important but get them fast.

data matrix and WCSTransform tuple type parser #7

This is a base type parser which was required to dispatch a new method for ccd2rgb PR.

Support for RGB #22

Finally, with all the ingredients in place, it was time to enable support for RGB image. The mutable and immutables fields for an AstroImages are separated in different structs and rgb_image sits in properties struct. I wrote it this way as more such mutables are in line to get added there.

Basic UI panel for AstroImages #3

The basic UI using Gtk.jl is completed. Tested and passing locally. It requires a release of AstroImages.jl which is still pending. So I am waiting until it gets merged in Julia registry and I can set up CI builds for AstroImageView.jl where the UI sits.

Final tasks remaining

Almost everything in the idea page of JuliaAstro is done up until now. Now, some part of the things that I proposed is left. I’m still figuring out the best way to do it like this.

  • Advanced UI panel for AstroImageView.jl
  • Distributable format for AstroImage.jl

The journey gets more challenging with time but the learning is too great with my mentor to help at crucial points. Hoping to end this with a bang!!