Wednesday 28 December 2011

Use ColorBrewer for coloring maps rendered with GeoTools

ColorBrewer is an excellent library for creating dynamic color palettes that can be used to apply colors to a map based on the spread of data values. The ColorBrewer web tool allows you to select a color scheme based on the nature of the data (sequential, diverging, qualitative) and  the number of data classes present in the data. You can opt to select a color scheme that is color blind safe and works well on a photocopier.
Based on your requirements, the web tool will display the name of the color scheme that works best for the entered combination. For example, in the screenshot below, the color scheme chosen by the tool is BuGn.

ColorBrewer 2.0

ColorBrewer comes bundled with GeoTools. To include the correct library,use the following Maven snippet.

     org.geotools
     gt-brewer
     2.7.2

To instantiate the required palette within your Java application,
   String paletteName = "BuGn";
  ColorBrewer brewer = null;
  try {
   brewer = ColorBrewer.instance(ColorBrewer.DIVERGING);
  } catch (IOException e) {
   //Log Error
  }
                // Instantiate the color palette 
                 palette = brewer.getPalette(paletteName);
                // Get the number of colors your need. In this case, 3 colors
                // which are a variant of Green
                 palette.getColors(3);
Now, you have an array of colors which you can apply to your GIS features.

Sunday 25 December 2011

India's upcoming tour of DownUnder 2011

The last time I put together my thoughts before India (the then Twenty20 World Champions) toured Australia, and predicted an exciting time, little did I realise that the tour would become infamous for all the wrong reasons. This time around, both teams have resolved to play cricket in the spirit that it is meant to be played. Michael Clarke will be leading a relatively inexperienced side against the one day World Champions who not so long ago where also the leading Test team. Both sides have a lot to prove. Clarke will be hoping to assert his leadership early in the series while the Indians will be hoping to go 1-up early.

The Boxing Day Test which will be viewed by about 60,000 fans at the MCG including myself will see Tendulkar, Dravid, Laxman and possibly even Ponting play a Boxing Day test for perhaps the last time in their long and illustrious careers.Lets hope that these stalwarts get the best possible opportunity to perform before an adoring legion of fans and we are treated to some superb cricket in the Boxing Day test and through out the series. I guess this series will in all probability see Tendulkar (barring an injury) get his 100th International hundred and it will be a well-deserved milestone that will perhaps stand the test of time, just like the Don's famous average of 99.94 will.

Addendum : The first day of the Boxing Day test was attended by 70,068 fans, a record for an India-Australia test match and the day lived up to its billing. Tough cricket was played out by both sides with neither willing to give an inch and the match looks headed for an exciting finish.Here are some pictures from day one of the test.