Two Weeks In

A lot has transpired, two weeks into the coding period. I have been rather handicapped by the inappropriate timing of my semester exams, and yet, I have gained a few insights into work ahead.

To begin with, my map tests branch is finally passing on Travis CI. With a few cosmetic changes, I assume it will be merged on Monday during the developer meeting. Next, the Astropy community have merged their APE5 PR and are in the final stages of setting it up for the 0.4 release, which is slated for 3rd June. The APE5 is an important design document for the coordinates subpackage and introduces a clear separation of concerns – which class does what, and how to use them.

Astropy has subdivided the notion of a coordinate object into the following components -:

  1. Coordinate Representation: It is a particular way of describing a unique point in a vector space (usually 3D space). Some examples of significance to SunPy are the Cartesian and Cylindrical representations.
  2. Reference System: It is a scheme used to orient points in a space. It is used to describe how a point is transformed from system to system. Examples from the Astropy codebase are the ICRS and equitorial coordinates (mean equinox) systems.
  3. Coordinate Frame: This is a specific realization of a reference system. Some systems may have only one meaningful frame while yet others may have several different frames. A tentative example in the proposed SunPy subpackage would be that of the helioprojective coordinates, with Stonyhurst and Carrington realizations.

For separation of concerns, there are three types of classes involved -:

  1. Data Representation: These classes are to be used to represent the data in a form meaningful to the Astropy/SunPy user. They are subclassed from the `CoordinateRepresentation` abstract class. They are made to store the actual spatial information of a coordinate as a set of `Quantity` subclasses. They also provide methods to invoke transformations between systems.
  2. Low-Level: These classes are to serve as descriptions of both coordinate frames and act as containers around the data. They subclass from `CoordinateFrame`. Note that a pure frame is one that does not have any coordinate data, while a frame that does have such data becomes a coordinate.
  3. High-Level: These classes wrap around the low-level classes and use their functionality. They provide additional functionality to make the low-level classes easier to use. Astropy uses the `SkyCoord` class to this end.

These descriptions have been copied verbatim from my SunPy Enhancement Proposal., which is still a work in progress (here). Such proposals are put forward whenever SunPy undergoes a major feature change, or some major modifications. 

There has been some debate on whether Astropy’s SkyCoord class should be able to support representations such as the Cartesian and Cylindrical, out of the box. Such functionality is important to SunPy. This issue thread and consequent PoC seeks to address that concern. I will be adding tests and documentation so that the PR is complete and it is merged into the Astropy codebase.

I created a bunch of Interactive Python notebooks for the purpose of getting everyone up to speed on how Astropy’s coordinate subpackage works and how we will be using it. They can be found at -:

For the duration of my exams, I’ll try my best to add new stuff to SunPy, after Astropy v0.4 is put out of development stage.

More later!

Regarding Payoneer, taxes for Indian students

MAJOR NEWS

Skip down to the last parts of this post if you’ve read it before.

 

Excerpts from the GSoC mailing list (before we were warned for off-topic discussion) -:

  • Payoneer does not issue prepaid cards in India because of a RBI directive.
  • The bank transfer facility allows for transfer as USD or INR.
  • For transfer as INR, the charges are $3 + 3% of the transaction amount per transaction – this amounts to ~$150 for three transactions.
  • For transfer as USD, the charges are flat $15 per transaction – amounting to $45. One needs to check with their bank regarding any extra charges, forex rate charges, service tax, etc.

Clearly, transfer as USD is the best option at this time.

Apparently, there is some confusion regarding the transfer fees. The FAQ and pricing page at Payoneer says that the fees are $0. If someone could clarify this, please post a comment!

EDIT: For those who have questions, please refer to the comments thread of this post. Nissim, head of community at Payoneer, has decided to lend us a helping hand.

SECOND EDIT: This chat with the Payoneer representative that I had a while ago should clear everything -:

Bella: Hello and welcome to Payoneer Customer Support.

Pritish: Hello!

Bella: Before we proceed, please provide me with the answer to your security question:

Bella: What was the name of your first pet?

Pritish:

Bella: Thank you.

Bella: You wish to switch to a USD transfer?

Bella: The fee for the USD transfer is $15 per transfer.

Pritish: Yes, I’d mistakenly selected INR

Pritish: Wait, I had a doubt regarding this

Pritish: Sending a page link from Payoneer to you, gimme a min

Pritish:https://payouts.payoneer.com/webapps/methodregistration/fees.aspx?country=IN&pid=DJYxRUStsMq3EKWpggmvRQ%3d%3d&langid=1&sessionid=5qkt01fiyysakfdwkoubi14k&processor_type=1&ProcessorTypeId=1

Pritish: This page says that the fee for USD transfer is $0

Pritish: I live in India and this is regarding my stipend for Google summer of code

Bella: Let me look into this for you.

Pritish: Thanks!

Bella: Please hold one moment.

Bella: I see, you are affiliated with Google Summer of Code and therefore the fee setup is different than usual. There is no flat fee for the transfers apart from the conversion rates that apply for certain transfers.

Bella: You wish to use a USD transfer instead?

Pritish: So if I transfer as USD, the only charges I will have are those relating to exchange rates and other associated fees at my bank, correct? Nothing from Payoneer’s side?

Bella: Yes, correct.

Pritish: Please do set my transfer mode to USD. Thank you!

Bella: We will transfer your request to the relevant department and keep you updated via email.

Pritish: Right, thank you.

Bella: Are you still to use the same bank account?

Pritish: Indeed, I am.

Bella: Okay. Thank you. We will keep you updated and let you know once this is done.

Bella: Is there anything else I can help you with?

Pritish: This was it, thank you so much!

So, in conclusion, I have an account at HDFC bank – to clarify, they charge the following -:

  1. The forex rate, let us call this the base rate.
  2. Some percentage of the base rate as conversion fees.
  3. Now from the money that is deducted by 1 and 2, 12.5% is charged on this difference as service tax.

Transfer as USD is *still* the winner.

I am posting a link to a blog regarding the tax issue. Apparently, stipends are exempt from taxes, and we need to declare exemption.

Link: Click Here

 

Conclusion

Payoneer recently conducted an experiment with me as their recipient to see which transfer mode would be more beneficial to students residing in India. They sent money through two transactions, one in SWIFT/USD mode and one in INR mode. Long story short, INR mode yielded around Rs 200 extra for the same transaction amount. For larger amounts, such as those distributed by Google, the difference could be larger. It may or may not depend on the bank your account is linked to, but so far, I’ve found that very few banks have been favourable in USD mode (such as IDBI Bank). Most banks, SBI in particular, and surprisingly, even HDFC (experiment confirms for HDFC, since I’m an HDFC account holder) is better off with INR. So whatever you do, choose carefully!

Test Post

This post is a test post.

It has no special features. Were you expecting something, Monsieur?

“The Game is…something” – a rather drunk Sherlock Holmes on a pub crawl.

“..On?” – a helpful and equally drunk John Watson.