Map of PM Modi’s Domestic Visits

PM Modi visited Tamil Nadu on 27th January 2019 for the AIIMS Hospital ground breaking ceremony. Twitter was trending with #GoBackModi and #TNWelcomesModi and I was curious about the number of times has PM Modi visited Tamil Nadu before.

The PM India site has a neat list of all the visits

So, I created a map out of it.



This map was replaced after some errors were discovered in the base data.

India Literacy Map with a How-To

I published the Tamilnadu district wise literacy map some days ago and @tshrinivasan asked if I can write a blog on how to do it, and here it is now.

What are we going to do?

We are going to create India’s State Wise Literacy Map. It will be a Choropleth map ℹ️ just like the Tamilnadu one.

Things we need

  1. QGIS – An Open Source software that will be used to process the geographic data and create the map. Download and install it from for your operating system.
  2. Base map – The digital map of India with its state boundaries as a shapefile. ℹ️ You search the internet for “India states shapefile”, there are a number of sources where you can find this. I am going to use the one from the Hindustan Times public repository. [shapefiles/india/state_ut/] ⬇️Download, Unzip the file and keep it ready. I am choosing the pre-Telangana map because the literacy data is from 2011 which is pre-Telangana.
  3. Data on literacy levels of the Indian states. An internet search for “India states literacy csv” would give a number of results. I am going to use the one from the Census 2011 website. ⬇️Download

Get the data ready

We have 2 sources of data:

  1. Geographic data which we downloaded from the Hindustan Times
  2. The Literacy data from the Census 2011 website

Both the datasets need to be joined to create the map. Let us do that:

  1. Open QGIS and create a new project. From menu select Project -> New Project
  2. Add the map using Layer -> Add Layer -> Add Vector Layer. Browse to the location of the downloaded shapefile, select the india_2000-2014_state.shp file and click Add. Add_layer
  3. You will be asked to select the coordinate system. Select WGS84 and click OK. Once the layer is added close the Add layer button. Select CRS
  4. Now you should have the map loaded to the main area, and should see the legend entry for the data layer like this. Base Map added
  5. Now right click on the layer and select Open Attribute TableOpen Attribute Table.png
  6. You will notice it has only two columns – the id and the state name. We are going to create a new column and add the literacy rates from the census data. In the Attribute Table, click the yellow pencil icon (first one in the icon bar) to start editing.
  7. Click the Add Column button and add the literacy column with type decimal. Add_columnliteracy column
  8. Now enter the literacy rates from the excel sheet into the newly added column. Sidenote: There is an automated way to combine the data without having to manually enter the data if you have the data in a delimited text file like CSV. It involves adding a something called a Data Layer. We will take the manual route to keep it simple.
  9. Once you have added the literacy values. Click Save Edits icon (Ctrl+s).  Now click the “Yellow Pencil” button again to stop editing. This is very important. Otherwise, you might unknowingly click at some place and change the geometry of the state boundaries.
  10. Now you should have the data in the attribute table like this. Attribute Table with Literacy.png
  11. Close the Attribute Table.

Styling the map

  1. In the Layers sidebar right click on the map layer and select Properties.
  2. In the Properties window, select Symbology from the side menu. Layer Properties.png
  3. In the Styling window make the following changes. Styling.png
    1. A – Change the style from “Single Symbol” to Graduated
    2. B – Select “literacy” as the column
    3. C – Set Precision to your liking (it denotes the decimal points of the values to be shown in the map legend). I prefer 0 or 1 usually.
    4. D – Choose a Color Ramp to your liking. I am choosing the one suitable for Wikipedia based on the Wikipedia Conventions.
    5. E – Set the mode to “Pretty Breaks”. Now as soon as you select this, the “Classes” tab right above it should be populated automatically. If not, use F.
    6. F – If your classes didn’t appear automatically, click the “Classify” button.
  4. Once you are satisfied with the Legend precision and the color ramp, click OK to see your styled Choropleth map. styled map.png

Note: The properties dialog provides a huge number of options to do a number of things including labels. Refer to a QGIS manual or tutorials on the web for related information.

Exporting the map

Now we have the styled map according to our liking ready. We need to export it to an image so that we can share it across.

  1. Click the “New Print Layout” button. Enter a name, I named mine “export” and click print layout
  2. You will get the Layout window with an empty page. empty print layout.png
  3. From the menu, select Add Item -> Add map. Click and drag the cursor to the required size. map inserted.png
  4. (Optional) There is a lot of white space around the map inside the box. We can make the map a little bigger by reducing the scale. On the right side switch to the Item Properties tab and reduce the value for Scale. (Mine was 17485874 and I changed it to 12500000). rescaled map.png
  5. Click Add Item -> Add Legend. Click and drag the cursor to create the Legend. India’s maps usually use the Bay of Bengal for that, I am going to do the same. Legend Added.png
  6. You will notice that the legend title says the layer name. But what we really want it to say is “Literacy Rate”. There are two ways to fix that. Choose the one that appeals to you.
    1. On the right in the Item Properties tab, under Main Properties, you can enter a title as “Literacy Rate”
    2. On the right in the Item Properties tab, under  Legend Items, double-click on the layer name and enter “Literacy Rate”
  7. Now there is some extra white space on the right. Let us clean that up. On the right side select Layout tab, scroll down to Resize Layout to content and click Resize Layout. Now the page should have been resized to only the map. cropped to content.png
  8. From menu click Layout -> Export as Image. Enter the filename in your desired location and save it. You could also export as PDF if you want to print.

Note: Apart from just the map and legend you can do a lot more complex things with the layout manager. Again, refer to a QGIS manual and other tutorials on the internet to fully learn about them.

Final Product


Updating the Wikipedia Tamilnadu Literacy Map

On 16th October 2011, I have uploaded a map of Tamilnadu District wise Literacy levels to Wikipedia. It was used in the article about Tamilnadu for a long time, then moved to the Education in Tamilnadu article when a separate article was created. But the map was not in line with the Wikipedia Map Conventions. So, took some time this week and updated the map.

Updated Version


Older version


Icons/Font related to Indian Culture

There seems to be a clear lack in availability of icons and icon fonts for using in the Indian cultural context. I realized this when we were designing a wedding invitation and we couldn’t find any free available material. So I am creating a list of known objects with cultural relevance and create them in my free time. All the icons you see here are available in Wikimedia Commons in Public Domain License. Feel free to do whatever you want with it. I suggest you upload your derived works to keep the spirit.

  • Nadaswram – Nadaswaram
  • Mridangam – Mridangam
  • Murasu – Murasu
  • Bullock Cart – Bullock cart icon
    • Bullock face – Bullock face
    • Bullock Full – Bullock full
  • Tea Tumbler – Tea Tumbler icon
  • Catapult – Catapult Icon
  • Garland –
  • Pot –
  • Two hands Vanakkam –
  • Cycle Tyre –
  • Cycle tube Catapult –
  • Mango –
  • Banana tree –
  • Full Boil / Half Boil – Half boil Icon
  • Biriyani –
  • Betel Leaf –
  • Head with towel –
  • Head with ear rings and pottu –
  • Kumbam –
  • Banana Leaf with Food –
  • Kolam (Thanks Pravin) –

If you happen to read this and have an idea of what more could be included, kindly leave your suggestions as comments. Or if you happen to find these icons in some form for free usage post the link.

Indecision and Enterprising

Trains journeys are quirky, just like India. I happened to meet a bank official of a nationalized bank in the last journey. He talked about a lot of things from UPSC exams to anger management, credits to my other co-passenger. If one wants to understand the status of economy, among the many people to meet should be a bank official. The following accounts from him tell a general tale of how India is today.

Account 1: The bank is planning to construct housing for its employees so that it can do away with the monthly Housing Allowance (HA) it pays. The management team has done the math and has estimated an amount under which it is economical for the bank to build housing, above which the bank is better off paying the HA. Tenders were issued and it attracted only 3 bidders. To be a reasonable they need to attract at least 6-7 bidders. But it simply doesn’t happens. Moreover, the three who have bid have a nexus. The bid amounts are so high that, if any bid is accepted, it becomes uneconomical for the bank. So the team talked with the bidders to get the quotation down, for which the bidders impose terms so all three can benefit. If the terms are accepted, it becomes illegal. This has been repeating year after year. The only things the team has to offer is – indecision. Simply the team cannot decide.

The official tells that it is not a unique case in banking. The problem persists at all levels of decision making in the economy right from the ministerial level. The example he gives is the famous 2G Spectrum case. While the CAG quotes a presumptive loss of so much crores due to illegitimate issuing of licenses, what has the redone legitimate 2G licensing done last year achieved? Certainly it hasn’t brought the exchequer the intended amount. If audited, it may even turn out the present income from the licenses, may even be less than the “tainted” money. In the bank’s case they have opted for indecision rather than either loss or a tainted profit.

Account 2: In theory, the education loan is the most ideal form of borrowing. One doesn’t pledge anything or provide any 3rd party surety.  The bank simply keeps entire trust on the borrower and his commitment to repay. In reality, rarely there exists a ideal system. He says the percentage of loan repayment is somewhere between 15-20%, in student numbers not in the amount repaid. The catch here is the lower the loan amount, the more likely the student is likely to pay. So technically the unpaid 80-85% are the heavy borrowers. Why doesn’t the student pay? The reasons vary from inability to pure greed. Some interesting reasons:

  • a girl student has been married to a person, who demands the entire salary to be given over to him. So the girl is willing to give in writing stating something like, “Arrest me if you want to for defaulting. I am better of in a jail than with my husband”
  • another girl’s husband simply considers it a matter concerning her father and warns of legal consequences if troubled by the bank again
  • a medical student in Australia simply wasn’t interested to pay even after settling down there, the case was pursued throw embassy and notice served before the parent coughed up
  • an engineering student earns 18,000 per month in Chennai, what is left of personal expenditure and family commitment is too little even for the interests
  • one doesn’t simply wants to repay the loan as the government is busy waiving them

So what does the bank do? How do they recover the money? The solution again is indecision. The new manager comes pushes the repayment period for a six months further and leaves the office without showing bad loans and the next manager repeats it. Because in most cases, the student simply has nothing in his pocket to give.


While I am not a economist to even the smallest of measures, this is what I observe. Of all the posh talk regarding FDI, market liquidity, global cues, blah blah persists in economic strengthening of the country, hardly any thought is given to the strengthening of local enterprises. It is hard to tell when our Finance Minister last talked about anything other than foreign investment and global market cues. While the situation, in terms of laws and regulations, for IT services and tech startups seem conducive, with introduction of things like within-24-hour registration, there is hardly any push in other sectors. Hardly anything fresh comes out from India. Even in crown jewel of Indian enterprises the IT, the industry is largely based on services and the lookout for an Indian Google or Facebook (I am not talking about a equivalent service) hasn’t ceased yet.

This sluggishness in enterprise is the one of the big reasons, that fuels the indecision in India. Had the entrepreneurial scene been better, the dilemma of the housing construction for the bank wouldn’t have existed, not all students would have been made to pre-sell their labor in the name of loans, or even better, they wouldn’t have a hand to mouth existence like a daily-wage laborer. While I wouldn’t argue lack of enterprising is the only reason for indecision at various levels in the economy, it does have a undeniable connection when dealing with the development.  While there are a multitude of reasons for this slack, it is important to recognize the impact it has on the economy and accept the fact, no matter how much the FDI is, whatever the global cues are, we have approached a point where economic growth is being held back by our indecision and the lack of home grown enterprises solving local problems.