Package org.codemap.mapview

Source Code of org.codemap.mapview.HeatMapColors

package org.codemap.mapview;

import static java.lang.Math.min;
import static java.lang.Math.round;
import static org.codemap.util.ArrayUtil.last;

import org.codemap.util.MColor;

/**
* Color ranges from: http://www.jjguy.com/heatmap/
* @author deif
*/
public class HeatMapColors {
   
    private static int[][] heat_classic = {
        {255, 224, 224},
        {255, 209, 209},
        {255, 193, 193},
        {255, 176, 176},
        {255, 159, 159},
        {255, 142, 142},
        {255, 126, 126},
        {255, 110, 110},
        {255, 94, 94},
        {255, 81, 81},
        {255, 67, 67},
        {255, 56, 56},
        {255, 46, 46},
        {255, 37, 37},
        {255, 29, 29},
        {255, 23, 23},
        {255, 18, 18},
        {255, 14, 14},
        {255, 11, 11},
        {255, 8, 8},
        {255, 6, 6},
        {255, 5, 5},
        {255, 3, 3},
        {255, 2, 2},
        {255, 2, 2},
        {255, 1, 1},
        {255, 1, 1},
        {255, 0, 0},
        {255, 0, 0},
        {255, 0, 0},
        {255, 0, 0},
        {255, 0, 0},
        {255, 0, 0},
        {255, 0, 0},
        {255, 0, 0},
        {255, 1, 0},
        {255, 4, 0},
        {255, 6, 0},
        {255, 10, 0},
        {255, 14, 0},
        {255, 18, 0},
        {255, 22, 0},
        {255, 26, 0},
        {255, 31, 0},
        {255, 36, 0},
        {255, 41, 0},
        {255, 45, 0},
        {255, 51, 0},
        {255, 57, 0},
        {255, 62, 0},
        {255, 68, 0},
        {255, 74, 0},
        {255, 81, 0},
        {255, 86, 0},
        {255, 93, 0},
        {255, 99, 0},
        {255, 105, 0},
        {255, 111, 0},
        {255, 118, 0},
        {255, 124, 0},
        {255, 131, 0},
        {255, 137, 0},
        {255, 144, 0},
        {255, 150, 0},
        {255, 156, 0},
        {255, 163, 0},
        {255, 169, 0},
        {255, 175, 0},
        {255, 181, 0},
        {255, 187, 0},
        {255, 192, 0},
        {255, 198, 0},
        {255, 203, 0},
        {255, 208, 0},
        {255, 213, 0},
        {255, 218, 0},
        {255, 222, 0},
        {255, 227, 0},
        {255, 232, 0},
        {255, 235, 0},
        {255, 238, 0},
        {255, 242, 0},
        {255, 245, 0},
        {255, 247, 0},
        {255, 250, 0},
        {255, 251, 0},
        {253, 252, 0},
        {250, 252, 1},
        {248, 252, 2},
        {244, 252, 2},
        {241, 252, 3},
        {237, 252, 3},
        {233, 252, 3},
        {229, 252, 4},
        {225, 252, 4},
        {220, 252, 5},
        {216, 252, 5},
        {211, 252, 6},
        {206, 252, 7},
        {201, 252, 7},
        {197, 252, 8},
        {191, 251, 8},
        {185, 249, 9},
        {180, 247, 9},
        {174, 246, 10},
        {169, 244, 11},
        {164, 242, 11},
        {158, 240, 12},
        {151, 238, 13},
        {146, 236, 14},
        {140, 233, 14},
        {134, 231, 15},
        {128, 228, 16},
        {122, 226, 17},
        {116, 223, 18},
        {110, 221, 19},
        {105, 218, 20},
        {99, 216, 21},
        {93, 214, 22},
        {88, 211, 23},
        {82, 209, 24},
        {76, 207, 25},
        {71, 204, 26},
        {66, 202, 28},
        {60, 200, 30},
        {55, 198, 31},
        {50, 196, 33},
        {45, 194, 34},
        {40, 191, 35},
        {36, 190, 37},
        {31, 188, 39},
        {27, 187, 40},
        {23, 185, 43},
        {19, 184, 44},
        {15, 183, 46},
        {12, 182, 48},
        {9, 181, 51},
        {6, 181, 53},
        {3, 180, 55},
        {1, 180, 57},
        {0, 180, 60},
        {0, 180, 62},
        {0, 180, 65},
        {0, 181, 68},
        {0, 182, 70},
        {0, 182, 74},
        {0, 183, 77},
        {0, 184, 80},
        {0, 184, 84},
        {0, 186, 88},
        {0, 187, 92},
        {0, 188, 95},
        {0, 190, 99},
        {0, 191, 104},
        {0, 193, 108},
        {0, 194, 112},
        {0, 196, 116},
        {0, 198, 120},
        {0, 200, 125},
        {0, 201, 129},
        {0, 203, 134},
        {0, 205, 138},
        {0, 207, 143},
        {0, 209, 147},
        {0, 211, 151},
        {0, 213, 156},
        {0, 215, 160},
        {0, 216, 165},
        {0, 219, 171},
        {0, 222, 178},
        {0, 224, 184},
        {0, 227, 190},
        {0, 229, 197},
        {0, 231, 203},
        {0, 233, 209},
        {0, 234, 214},
        {0, 234, 220},
        {0, 234, 225},
        {0, 234, 230},
        {0, 234, 234},
        {0, 234, 238},
        {0, 234, 242},
        {0, 234, 246},
        {0, 234, 248},
        {0, 234, 251},
        {0, 234, 254},
        {0, 234, 255},
        {0, 232, 255},
        {0, 228, 255},
        {0, 224, 255},
        {0, 219, 255},
        {0, 214, 254},
        {0, 208, 252},
        {0, 202, 250},
        {0, 195, 247},
        {0, 188, 244},
        {0, 180, 240},
        {0, 173, 236},
        {0, 164, 232},
        {0, 156, 228},
        {0, 147, 222},
        {0, 139, 218},
        {0, 130, 213},
        {0, 122, 208},
        {0, 117, 205},
        {0, 112, 203},
        {0, 107, 199},
        {0, 99, 196},
        {0, 93, 193},
        {0, 86, 189},
        {0, 78, 184},
        {0, 71, 180},
        {0, 65, 175},
        {0, 58, 171},
        {0, 52, 167},
        {0, 46, 162},
        {0, 40, 157},
        {0, 35, 152},
        {0, 30, 147},
        {0, 26, 142},
        {0, 22, 136},
        {0, 18, 131},
        {0, 15, 126},
        {0, 12, 120},
        {0, 9, 115},
        {1, 8, 110},
        {1, 6, 106},
        {1, 5, 101},
        {2, 4, 97},
        {3, 4, 92},
        {4, 5, 89},
        {5, 5, 85},
        {6, 6, 82},
        {7, 7, 79},
        {8, 8, 77},
        {10, 10, 77},
        {12, 12, 77},
        {14, 14, 76},
        {16, 16, 74},
        {19, 19, 73},
        {21, 21, 72},
        {24, 24, 71},
        {26, 26, 69},
        {29, 29, 70},
        {32, 32, 69},
        {35, 35, 68},
        {37, 37, 67},
        {40, 40, 67},
        {42, 42, 65},
        {44, 44, 65},
        {46, 46, 64},
        {48, 48, 63},
        {49, 50, 62},
        {51, 51, 61},
        {53, 52, 61},
    };
   
    private static int[][] pgaitch = {
// omit the first few colors as they look too white
//        {255, 254, 165},
//        {255, 254, 164},
//        {255, 253, 163},
//        {255, 253, 162},
//        {255, 253, 161},
//        {255, 252, 160},
//        {255, 252, 159},
//        {255, 252, 157},
//        {255, 251, 156},
//        {255, 251, 155},
//        {255, 251, 153},
//        {255, 250, 152},
//        {255, 250, 150},
//        {255, 250, 149},
//        {255, 249, 148},
//        {255, 249, 146},
//        {255, 249, 145},
//        {255, 248, 143},
//        {255, 248, 141},
//        {255, 248, 139},
//        {255, 247, 138},
//        {255, 247, 136},
//        {255, 246, 134},
//        {255, 246, 132},
//        {255, 246, 130},
//        {255, 245, 129},
//        {255, 245, 127},
//        {255, 245, 125},
//        {255, 244, 123},
//        {255, 244, 121},
//        {255, 243, 119},
//        {255, 243, 117},
//        {255, 242, 114},
//        {255, 242, 112},
//        {255, 241, 111},
//        {255, 241, 109},
//        {255, 240, 107},
//        {255, 240, 105},
//        {255, 239, 102},
//        {255, 239, 100},
//        {255, 238, 99},
//        {255, 238, 97},
//        {255, 237, 95},
//        {255, 237, 92},
//        {255, 236, 90},
//        {255, 237, 89},
//        {255, 236, 87},
//        {255, 235, 84},
//        {255, 235, 82},
//        {255, 234, 80},
//        {255, 233, 79},
//        {255, 233, 77},
//        {255, 232, 74},
//        {255, 231, 72},
//        {255, 230, 70},
//        {255, 230, 69},
//        {255, 229, 67},
//        {255, 228, 65},
//        {255, 227, 63},
//        {255, 226, 61},
//        {255, 225, 60},
        {255, 225, 58},
        {255, 224, 56},
        {255, 223, 54},
        {255, 222, 52},
        {255, 222, 51},
        {255, 221, 49},
        {255, 220, 47},
        {255, 219, 46},
        {255, 218, 44},
        {255, 216, 43},
        {255, 215, 42},
        {255, 214, 41},
        {255, 213, 39},
        {255, 212, 39},
        {255, 211, 37},
        {255, 209, 36},
        {255, 208, 34},
        {255, 208, 33},
        {255, 206, 33},
        {255, 205, 32},
        {255, 204, 30},
        {255, 202, 29},
        {255, 201, 29},
        {255, 199, 28},
        {254, 199, 28},
        {254, 199, 27},
        {253, 198, 27},
        {252, 197, 27},
        {251, 196, 27},
        {250, 195, 26},
        {249, 195, 26},
        {248, 194, 26},
        {248, 193, 26},
        {247, 192, 26},
        {246, 192, 25},
        {245, 191, 26},
        {244, 190, 26},
        {243, 189, 25},
        {241, 188, 25},
        {240, 187, 25},
        {239, 187, 25},
        {238, 186, 25},
        {236, 185, 25},
        {236, 184, 26},
        {235, 183, 26},
        {233, 182, 25},
        {232, 181, 25},
        {230, 181, 26},
        {229, 180, 26},
        {228, 179, 25},
        {227, 178, 25},
        {226, 177, 26},
        {224, 176, 26},
        {222, 176, 25},
        {221, 175, 25},
        {220, 173, 26},
        {219, 172, 26},
        {217, 171, 25},
        {215, 170, 25},
        {214, 170, 26},
        {212, 169, 26},
        {211, 167, 25},
        {209, 166, 25},
        {208, 166, 26},
        {206, 165, 26},
        {204, 163, 26},
        {203, 162, 26},
        {202, 161, 25},
        {200, 161, 26},
        {198, 159, 26},
        {197, 158, 26},
        {195, 157, 26},
        {193, 157, 27},
        {192, 155, 27},
        {190, 154, 27},
        {189, 153, 27},
        {187, 152, 28},
        {186, 151, 28},
        {184, 150, 28},
        {182, 149, 28},
        {181, 148, 29},
        {179, 147, 29},
        {177, 146, 29},
        {175, 144, 29},
        {174, 144, 30},
        {172, 142, 30},
        {170, 141, 30},
        {169, 140, 30},
        {167, 139, 31},
        {165, 138, 31},
        {164, 137, 31},
        {162, 136, 31},
        {161, 135, 32},
        {159, 134, 32},
        {157, 133, 32},
        {154, 132, 32},
        {153, 131, 33},
        {151, 130, 33},
        {150, 129, 33},
        {148, 127, 33},
        {147, 127, 34},
        {145, 126, 34},
        {143, 124, 34},
        {141, 123, 34},
        {140, 122, 35},
        {139, 121, 35},
        {137, 120, 35},
        {135, 119, 35},
        {134, 118, 36},
        {132, 117, 36},
        {130, 116, 36},
        {129, 115, 36},
        {127, 113, 36},
        {126, 113, 37},
        {124, 112, 37},
        {122, 111, 37},
        {121, 110, 37},
        {120, 109, 38},
        {118, 108, 38},
        {116, 107, 38},
        {115, 105, 38},
        {113, 104, 38},
        {112, 104, 39},
        {110, 103, 39},
        {108, 102, 39},
        {107, 101, 39},
        {106, 100, 40},
        {104, 99, 40},
        {102, 98, 40},
        {101, 96, 40},
        {99, 96, 40},
        {99, 96, 41},
        {97, 94, 41},
        {96, 93, 41},
        {94, 92, 41},
        {92, 91, 41},
        {92, 90, 42},
        {90, 90, 42},
        {89, 89, 42},
        {87, 87, 42},
        {86, 86, 42},
        {85, 86, 43},
        {84, 85, 43},
        {83, 84, 43},
        {81, 83, 43},
        {80, 82, 43},
        {80, 82, 44},
        {78, 80, 44},
        {77, 80, 44},
        {75, 79, 44},
        {75, 78, 44},
        {74, 78, 45},
        {73, 76, 45},
        {71, 75, 45},
        {71, 75, 45},
        {70, 74, 45},
        {69, 74, 46},
        {68, 73, 46},
        {67, 72, 46},
        {66, 71, 46},
        {65, 71, 46},
        {64, 69, 46},
        {64, 69, 47},
        {63, 68, 47},
        {62, 67, 47},
        {61, 67, 47},
        {60, 66, 47},
        {59, 65, 47},
        {59, 65, 48},
        {59, 64, 48},
        {58, 63, 48},
        {57, 63, 48},
        {56, 62, 48},
        {56, 62, 48},
        {55, 61, 48},
        {55, 61, 49},
        {55, 60, 49},
        {55, 60, 49},
        {54, 59, 49},
        {53, 58, 49},
        {53, 57, 49},
        {52, 57, 49},
        {52, 57, 50},
        {52, 56, 50},
        {52, 56, 50},
        {52, 56, 50},
        {52, 55, 50},
        {51, 54, 50},
        {51, 53, 50},
        {51, 53, 50},
        {51, 52, 50},
        {51, 53, 51},
        {51, 53, 51},
        {51, 52, 51},
        {51, 52, 51},
    };
   
    private float step;
    private double current;
   
    public HeatMapColors(int steps) {
        step = (float) getColorArray().length / (float) steps;
        current = 0.0;
    }
   
    private  int[][] getColorArray() {
        return pgaitch;
    }

    public MColor colder() {
        int index = min(getColorArray().length, (int) round(current));
        current += step;
        return makeColor(getColorArray()[index]);
    }

    private MColor makeColor(int[] color) {
        return new MColor(color[0], color[1], color[2]);
    }

    public MColor getColdest() {
        return makeColor(last(getColorArray()));
    }   

}
TOP

Related Classes of org.codemap.mapview.HeatMapColors

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.