Skip to content

GSoC 2013 Ankit Agrawal

ankit-maverick edited this page Apr 28, 2013 · 72 revisions

SunPy : Implementation of Image Processing routines for Map and MapCube

This proposal is still in progress.

Contact and Username info:


Name : Ankit Agrawal
Email : aaaagrawal@iitb.ac.in
github : ankit-maverick
IRC nick : AnkitAgrawal
Skype : aaaagrawal
Blog : http://sunpythonic.blogspot.com
University : Indian Institute of Technology(IIT), Bombay
Major : Electrical Engineering with Masters in Communication and Signal Processing
Current Year : Third year
Expected Graduation date : June 2015
Degree : Dual Degree(B.Tech + Masters in 5 yrs)

Proposal Title :


SunPy : Implementation of Image Processing routines for Map and MapCube

Personal Bio :


I am Ankit Agrawal, a third year student enrolled in a 5 year Dual Degree Program(B.Tech and Masters) in Electrical Engineering at IIT Bombay. My Masters specialization is in Communication and Signal Processing. I want to work on the idea of 'Implementation of Image Processing Routines for Map and MapCube'. The relevant coursework that I have done in the past related to this project are Linear Algebra, Image Processing, Data Analysis and Interpretation and Computer Vision. Python is the programming language I am most confident with. I also know C++, Java, Matlab and R and have used them in various projects.

I have been using many open source softwares for my daily programming purposes and have always felt the desire to contribute back to the open source community. The last few weeks have been very satisfying to me because of the learning curve I have ascended by writing good quality test-driven code in a collaborative environment while contributing to some open source projects in Python. Becoming a part of development team of such open source projects requires time to gain trust in the code you write and the decisions you make. Google Summer of Code provides a perfect platform for someone like me to become a part of well established open source project.

I have been interested in Astronomy since past two and a half years at my university. In the last two semesters, I have found my interest Image Processing and Computer Vision and want to pursue my Masters(next two years) in the same. Solar physics involves a great deal of analysis on Solar Images which makes the use of Image Processing techniques very prominent. Because of the above reasons, I would like to become a part of core development team of SunPy and contribute to the Image Processing needs of the library in future.

Proposal Abstract :


A great percentage of analysis in Solar Physics is performed using Images. Hence Image Processing methods play a major role in Solar Data Analysis. Sunpy provides a data-type Map to hold such 2D images and a data-type MapCube, to store a list or series of Maps. This project focuses on implementing important Image Processing routines for the following tasks for the above two classes to improve existing solar image analysis capabilities in SunPy.

  • Sorting and Resampling Maps in a Mapcube and by time, frequency and other units
  • Image Registration to align images in a Mapcube
  • De-rotating images to compensate for Sun's rotation
  • Compensate the observed dimming on the edge of the Sun.

Proposal Detailed Description


I don't have any other commitment during summer hence I will work the normal 40 hr/week throughout the summer. I will commit at least four times a week to ensure that my code is reviewed regularly by the mentors and I can work on the received feedback immediately. I will be available daily on IRC and weekly on Hangouts as my preferred means of communication. I will reply to mails within 12 hrs of their reception. I will report my weekly progress on this blog. The Implementation Timeline is as follows -

Community Bonding Period (27th May - 16th June):

Reading papers mentioned in the reference. Discussing the possible ideas with the developer community to finalize the best possible algorithm for a particular task . Fixing bugs tagged with 0.3 milestone and adding tests to get familiar with the code-base as much as possible.

Week 1 and 2 (17th June - 30th June):

Sorting Maps in a Mapcube by time, frequency and other units. This would be implemented using standard sorting algorithms like Quicksort. Routine for Resampling Maps on z-axis by a factor.

Week 3, 4 and 5 (1st July - 21st July):

Implementing Image Registration methods to align the images in a MapCube with a high degree of accuracy. The basic steps in Image Registration would be to find the features/keypoints in both the images, correspond/match the detected features in both the images, find the transformation between two images and then align the second image in first's co-ordinate frame.

Week 6 and Midterm Evaluation Period (22nd July - 2nd Aug):

Buffer period. Getting the code design reviewed by the community. Adding tests and documentation. Fixing bugs if any.

Week 7, 8 and 9 (3rd Aug - 23rd Aug):

Implementing a routine for de-rotating solar images in solar coordinates to compensate for the rotation of the Sun as mentioned in [4] and [5] in reference section.

Week 10 and 11 (24th Aug - 6th Sep):

Adding a routine that compensates for the observed dimming on the edge of the Sun using the Limb Darkening equation.

Week 12 and Final Evaluation (7th Sep - 16th Sep):

Buffer period. Getting the code design reviewed by the community. Adding tests and documentation. Fixing bugs if any.

Post GSoC:

Implementing more Image Processing ideas that I get/get suggested by the community during the summer.

Project Experience in Image Processing and Data Analysis :


Contributions to Sunpy :


Contributions to Image Processing package scikit-image :


Reference :


(1) Image Registration Methods : A Survey

[(2)] (http://szeliski.org/Book/drafts/SzeliskiBook_20100903_draft.pdf) Computer Vision by Richard Szeliski : Chapter 6 , Pg. no. 309, Feature based Alignment

(3) Image Processing Techniques and Feature Recognition in Solar Physics

(4), (5) De-rotating Solar Images

(6) Limb Darkening

Clone this wiki locally