import os
import twc.embedded.imagecut.config

TWCPERSDIR = os.environ['TWCPERSDIR']
config = twc.embedded.imagecut.config.Config()

# maps an RGB color to a color weight/score
config.setSmoothedColorPalette(
        # Red   Grn  Blue  Score
        # RAIN
       [(  20,     20,     20,   0),   # drop-shadow  (tv-safe black)
        (  64,    204,     85,   1),   # level  1: light green
        (  32,    178,     42,   2),   # level  2: lightish green
        (   0,    153,      0,   3),   # level  3: green
        (   0,    127,      0,   3),   # level  3: darkish green
        (   0,    102,      0,   4),   # level  4: dark green
        (   0,     90,      0,   4),   # level  4: very dark green
        ( 191,    204,     85,   5),   # level  5: pale green-yellow
        ( 191,    178,     42,   5),   # level  5: yellow
        ( 191,    153,      0,   6),   # level  6: yellow-orange
        ( 223,    102,      0,   6),   # level  6: reddish-orange
        ( 255,     51,      0,   7),   # level  6: red-orange
        ( 223,     51,      0,   7),   # level  6: orange
        ( 191,     51,      0,   8),   # level  8: red
        ( 159,     25,      0,   8),   # level  8: red 
        ( 128,      0,      0,   9),   # level  9: darkish red
        (  96,      0,      0,   9),   # level  9: darkish red
        (  64,      0,      0,  10),   # level 10: dark red
        # MIXED - mixed intensities only go to 7
        # (because frozen precip can't fall as fast as rain)
        # (i dont't know, go ask a meteorologist)
        ( 235,    230,    215,   1),   # level 1: light purple
        ( 221,    112,    195,   2),   # level 2: ..
        ( 208,     94,    176,   3),   # level 3: ..
        ( 199,     82,    163,   4),   # level 4: purple
        ( 190,     70,    150,   5),   # level 5: ..
        ( 180,     60,    140,   6),   # level 6: ..
        ( 170,     50,    130,   7),   # level 7: dark purple
        # SNOW - snow intensities only go to 7
        ( 150,    150,    150,   1),   # level 1: dark grey
        ( 165,    165,    165,   2),   # level 2: ..
        ( 180,    180,    180,   3),   # level 3: grey
        ( 195,    195,    195,   4),   # level 4: ..
        ( 210,    210,    210,   5),   # level 5: light grey
        ( 220,    220,    220,   6),   # level 6: ..
        ( 230,    230,    230,   7)]   # level 7: white (tv safe)
)

# maps a unique palette number/index number to an RGB value
COMMON  = 1
RAIN    = 2  
MIXED   = 3
SNOW    = 4
# This table shows what colors are required to be in a radar image
# generated by WxPro.  This is a finite list. Not all these colors
# need to be in the image, but any colors present in the image that
# are not in this table will be removed during image scaling!
config.setWxProColorPalette(
       # - Palette #, Color #, Red,   Grn,  Blue
       # - COMMON (across all palettes)
       [(  COMMON,      1,      0,     0,     0,  ),   # transparency: true black
        (  COMMON,      2,     20,    20,    20,  ),   # drop shadow: tv-safe black
       # - RAIN
        (    RAIN,      1,      0,     0,     0,  ),   # transparency: true black
        (    RAIN,      2,     20,    20,    20,  ),   # drop shadow: tv-safe black
        (    RAIN,      3,     64,   204,    85,  ),   # light green
        (    RAIN,      4,      0,   153,     0,  ),   # med green
        (    RAIN,      5,      0,   102,     0,  ),   # dark green
        (    RAIN,      6,    191,   204,    85,  ),   # yellow
        (    RAIN,      7,    191,   153,     0,  ),   # orange
        (    RAIN,      8,    255,    51,     0,  ),   # ..
        (    RAIN,      9,    191,    51,     0,  ),   # red
        (    RAIN,     10,    128,     0,     0,  ),   # ..
        (    RAIN,     11,     64,     0,     0,  ),   # dark red
       # - MIXED
        (   MIXED,      1,      0,     0,     0,  ),   # transparency
        (   MIXED,      2,     20,    20,    20,  ),   # drop shadow
        (   MIXED,      3,    235,   130,   215,  ),   # light purple
        (   MIXED,      4,    208,    94,   176,  ),   # ..
        (   MIXED,      5,    190,    70,   150,  ),   # ..
        (   MIXED,      6,    170,    50,   130,  ),   # dark purple
       # - SNOW
        (    SNOW,      1,      0,     0,     0,  ),   # transparency
        (    SNOW,      2,     20,    20,    20,  ),   # drop shadow
        (    SNOW,      3,    150,   150,   150,  ),   # dark grey
        (    SNOW,      4,    180,   180,   180,  ),   # light grey
        (    SNOW,      5,    210,   210,   210,  ),   # grey
        (    SNOW,      6,    230,   230,   230,  )]   # white
)
