from PIL import Image

def colorMap(minTempRange=-20,maxTempRange=40,maxvalue=255):
    totalrange= (maxTempRange-minTempRange)*10
    temprange=int (totalrange/3) # 3 colorzones
    factor=maxvalue/temprange

    resultRed   = []
    resultGreen = []
    resultBlue  = []

    for x in range (temprange):
            resultRed.append   (int(maxvalue))
            resultGreen.append (int(maxvalue-x*factor))
            resultBlue.append  (int(0))

    for x in range (temprange):
            resultRed.append   (int(maxvalue-x*factor/2))
            resultGreen.append (int(0))
            resultBlue.append  (int(x*factor/2))

    for x in range (temprange):
            resultRed.append   (int(x*factor))
            resultGreen.append (int(x*factor))
            resultBlue.append  (int(maxvalue-x*factor))

    return resultRed, resultGreen, resultBlue

minTempRange=-20
maxTempRange=40
maxBrightMap=200

colorMapRed,colorMapGreen,colorMapBlue = colorMap(minTempRange,maxTempRange,maxBrightMap)

image = Image.new( 'RGB', (len(colorMapRed),len(colorMapRed)), "white")
pixels = image.load()

for x in range (len(colorMapRed)):
    for y in range (len(colorMapRed)):
        pixels[x,y] = (colorMapRed[x], colorMapGreen[x], colorMapBlue[x])

print (colorMapRed[-200], colorMapGreen[-200], colorMapBlue[-200])
print (colorMapRed[-100], colorMapGreen[-100], colorMapBlue[-100])
print (colorMapRed[ -50], colorMapGreen[ -50], colorMapBlue[ -50])
print (colorMapRed[   0], colorMapGreen[   0], colorMapBlue[   0])
print (colorMapRed[ 100], colorMapGreen[ 100], colorMapBlue[ 100])
print (colorMapRed[ 200], colorMapGreen[ 200], colorMapBlue[ 200])
print (colorMapRed[ 300], colorMapGreen[ 300], colorMapBlue[ 300])

image.save("colorfunctionmap.png")
