Thaana Type

Research & development of Thaana fonts
,

  _     _                                     
 | |   | |                                    
 | |_  | |__     __ _    __ _   _ __     __ _ 
 | __| | '_ \   / _` |  / _` | | '_ \   / _` |
 | |_  | | | | | (_| | | (_| | | | | | | (_| |
  \__| |_| |_|  \__,_|  \__,_| |_| |_|  \__,_|
                                              
                                              
  _                          
 | |                         
 | |_   _   _   _ __     ___ 
 | __| | | | | | '_ \   / _ \
 | |_  | |_| | | |_) | |  __/
  \__|  \__, | | .__/   \___|
         __/ | | |           
        |___/  |_|           
Maldives parliamentary election 2019 analysis

Data analysis of election results by sex
, ,

float bar_start = (x-per)*10;
float bar_width = per*10;
if ( party.equals("MDP")  ){
    fill(255,222,0);
} else if ( party.equals("PPM") || party.equals("PNC") ) {
    fill(223,24,147);
} else if ( party.equals("JP") ){
    fill(230,23,23);
} else if ( party.equals("MDA") ){
    fill(212,157,37);
} else if ( party.equals("AP") ){
    fill(62,132,64);
} else if ( party.equals("IND") ){
    fill(175,175,175);
}    
#mvelection2013

2013 Maldives presidential election results analytics
, ,

function r(id, label, mdp, ppm, jp, gi, invalid, nonvoters, max) {
  var total = mdp+ppm+jp+gi+invalid+nonvoters+max;
  var canvas = document.createElement('canvas');
  var chartwidth = 2100;
  var chartheight = 50;
  var top = 2;
  if (max < 10000 && max != 0) {
    canvas.width = 2100; 
  } else {
    chartwidth = 800;
    canvas.width = chartwidth ;   
  }
mvmurders

Mapping & documenting murders that have taken place in the Maldives
, ,

                                                     _                     
                                                    | |                    
  _ __ ___   __   __  _ __ ___    _   _   _ __    __| |   ___   _ __   ___ 
 | '_ ` _ \  \ \ / / | '_ ` _ \  | | | | | '__|  / _` |  / _ \ | '__| / __|
 | | | | | |  \ V /  | | | | | | | |_| | | |    | (_| | |  __/ | |    \__ \
 |_| |_| |_|   \_/   |_| |_| |_|  \__,_| |_|     \__,_|  \___| |_|    |___/
                                                                           
                                                                           
Nakaiy Nevi

Seasons of the Maldives – a mobile app
, , ,

for (var i=1; i<nakaiy.length; i++){
  nakaiydb.insert({ id:i, 
    nakaiy:nakaiy[i][0], 
    dates:nakaiy[i][1], 
    season:nakaiy[i][2], 
    number:nakaiy[i][3], 
    description:nakaiy[i][4], 
    meaning:nakaiy[i][5], 
    weather:nakaiy[i][6], 
    averages:nakaiy[i][7], 
    fishing:nakaiy[i][8], 
    agriculture:nakaiy[i][9], 
    asterism:nakaiy[i][10]
  }); 
}
Islands of Maldives

Islands of Maldives (aligning together)
, ,

import processing.video.*;
MovieMaker mm;
....
float x = -7000 + float(pieces[6])*100;
float y = 715 + float(pieces[7])*-100;
scale(50);
String[] shapes = split(pieces[0], ',');

beginShape();
  for (int nodes = 0; nodes < shapes.length; nodes = nodes+1) {
    String[] xy = split(shapes[nodes]," ");  
    float x1 = -7000 + float(xy[0])*100 - x+6.4;
    float y1 = 715 + float(xy[1])*-100 - y+4.0;
    vertex(x1, y1);
  }
endShape(CLOSE);
Maldives 2006 Census Data Visualizations

For UNDP’s disaster awareness campaign research
, ,

function population_density() {
  $content = '';
  $fp2 = fopen('source.csv', 'r');    
  while (!feof($fp2)) {
    $line = fgetcsv($fp2, 4096);
    if ($line[0] == "138") { continue; }; // remove male' 
    if (is_numeric($line[4]) AND  is_numeric($line[5]) AND  !empty($line[6]) AND  !empty($line[17]) ) {
       $content .= '';
       $content .= '';
    }
  }
  fclose($fp2);
  $content .= '';
  return $content;
}
Framing Leaders

Algorithmically generated framed pictures of heads of governments
, , ,

#!/usr/bin/python
#
import datetime
for row in cursor.fetchall():
  if row['country_code'] + ".png" in srcfiles:
    x = datetime.datetime.now().date() - row['h_gov_since']
    if x.days > 365*2:
      years = " ("+ str(math.floor(x.days/365))[:-2] + " years)"
    elif x.days < 365:
      years = " ("+ str(x.days) + " days)"
      
    else:
      years = " ("+ str(math.floor(x.days/365))[:-2] + " year)" 
    img = row['country_code'] + ".png"
    imgs.append(img)
    li[img] = row['country_name'].capitalize() + years
    height.append(Image.open(pathx + img).size[1]+35)
    width.append(Image.open(pathx + img).size[0]+20)
Flags By Colours

Data visualization experiment using flags of the world
, , , ,

#!/usr/bin/python
#
from sys import argv
import Image, ImageDraw 
im = Image.open(argv[1]) 
im = im.convert('RGB') 
colors = {}; total = 0
for y in range(im.size[1]):
  for x in range(im.size[0]):
    color = im.getpixel((x,y))
    if color in colors.keys():
      colors[color] += 1
    else:
      colors[color] = 1
    total += 1 
mvblogosphere

Mapping of the Maldivian blogosphere (2006-2014)
, ,

                      _       _                                         _     
                     | |     | |                                       | |    
  _ __ ___   __   __ | |__   | |   ___     __ _    ___    ___   _ __   | |__  
 | '_ ` _ \  \ \ / / | '_ \  | |  / _ \   / _` |  / _ \  / __| | '_ \  | '_ \ 
 | | | | | |  \ V /  | |_) | | | | (_) | | (_| | | (_) | \__ \ | |_) | | | | |
 |_| |_| |_|   \_/   |_.__/  |_|  \___/   \__, |  \___/  |___/ | .__/  |_| |_|
                                           __/ |               | |            
                                          |___/                |_|            
                     
                     
   ___   _ __    ___ 
  / _ \ | '__|  / _ \
 |  __/ | |    |  __/
  \___| |_|     \___|
                     
                     
Drawing With Light

Mapping photography & its links to social, political & aesthetic systems

      _                             _                 
     | |                           (_)                
   __| |  _ __    __ _  __      __  _   _ __     __ _ 
  / _` | | '__|  / _` | \ \ /\ / / | | | '_ \   / _` |
 | (_| | | |    | (_| |  \ V  V /  | | | | | | | (_| |
  \__,_| |_|     \__,_|   \_/\_/   |_| |_| |_|  \__, |
                                                 __/ |
                                                |___/ 
             _   _     _         _   _           _       _   
            (_) | |   | |       | | (_)         | |     | |  
 __      __  _  | |_  | |__     | |  _    __ _  | |__   | |_ 
 \ \ /\ / / | | | __| | '_ \    | | | |  / _` | | '_ \  | __|
  \ V  V /  | | | |_  | | | |   | | | | | (_| | | | | | | |_ 
   \_/\_/   |_|  \__| |_| |_|   |_| |_|  \__, | |_| |_|  \__|
                                          __/ |              
                                         |___/               
Blindscapes

Photographing urban life in Malé
, ,

  _       _   _               _                                     
 | |     | | (_)             | |                                    
 | |__   | |  _   _ __     __| |  ___    ___    __ _   _ __     ___ 
 | '_ \  | | | | | '_ \   / _` | / __|  / __|  / _` | | '_ \   / _ \
 | |_) | | | | | | | | | | (_| | \__ \ | (__  | (_| | | |_) | |  __/
 |_.__/  |_| |_| |_| |_|  \__,_| |___/  \___|  \__,_| | .__/   \___|
                                                      | |           
                                                      |_|           
      
      
  ___ 
 / __|
 \__ \
 |___/