<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html  xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head>
<title></title>
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
<meta http-equiv="Content-Style-Type" content="text/css"/>
</head>
<body>
<div align="left">
<font face="Arial" size="2">
<span style=" font-size:10pt">
Hey Guys,</span></font>
</div>
<div align="left">
<font face="Arial" size="2">
<span style=" font-size:10pt">
<br />
</span>
</font>
</div>
<div align="left">
<font face="Arial" size="2">
<span style=" font-size:10pt">
I've got it!&#160; Mucho thanks for the very cool numpy example from Chris and of course to 
everyone else for the assistance.&#160; I can now add this code to a program that upsamples 
these images so they look better when plotted on a GIS map.&#160; I realize that I'm technically 
destroying data by blasting pixels from the image, but sometimes it's better to have a pretty 
presentation!</span></font>
</div>
<div align="left">
<font face="Arial" size="2">
<span style=" font-size:10pt">
<br />
</span>
</font>
</div>
<div align="left">
<font face="Arial" size="2">
<span style=" font-size:10pt">
You can try this code by grabbing a radar image from the source server:</span></font>
</div>
<div align="left">
<font face="Arial" size="2">
<span style=" font-size:10pt">
<br />
</span>
</font>
</div>
<div align="left">
<font face="Arial" size="2">
<span style=" font-size:10pt">
http://radar.weather.gov/ridge/RadarImg/N0Z/</span></font>
</div>
<div align="left">
<font face="Arial" size="2">
<span style=" font-size:10pt">
<br />
</span>
</font>
</div>
<div align="left">
<font face="Arial" size="2">
<span style=" font-size:10pt">
##############################################</span></font>
</div>
<div align="left">
<font face="Arial" size="2">
<span style=" font-size:10pt">
from PIL import Image</span></font>
</div>
<div align="left">
<font face="Arial" size="2">
<span style=" font-size:10pt">
import numpy as np</span></font>
</div>
<div align="left">
<font face="Arial" size="2">
<span style=" font-size:10pt">
<br />
</span>
</font>
</div>
<div align="left">
<font face="Arial" size="2">
<span style=" font-size:10pt">
#Open the raw radar image</span></font>
</div>
<div align="left">
<font face="Arial" size="2">
<span style=" font-size:10pt">
raw_image = Image.open(&quot;ABR_N0Z_0.gif&quot;)</span></font>
</div>
<div align="left">
<font face="Arial" size="2">
<span style=" font-size:10pt">
<br />
</span>
</font>
</div>
<div align="left">
<font face="Arial" size="2">
<span style=" font-size:10pt">
# make an array out of the image:</span></font>
</div>
<div align="left">
<font face="Arial" size="2">
<span style=" font-size:10pt">
a = np.asarray(raw_image).copy()</span></font>
</div>
<div align="left">
<font face="Arial" size="2">
<span style=" font-size:10pt">
<br />
</span>
</font>
</div>
<div align="left">
<font face="Arial" size="2">
<span style=" font-size:10pt">
# The noise colors are index 0,7,8 in the palette</span></font>
</div>
<div align="left">
<font face="Arial" size="2">
<span style=" font-size:10pt">
# I used IrfanView to determine this</span></font>
</div>
<div align="left">
<font face="Arial" size="2">
<span style=" font-size:10pt">
noise_colors = [0,7,8]</span></font>
</div>
<div align="left">
<font face="Arial" size="2">
<span style=" font-size:10pt">
<br />
</span>
</font>
</div>
<div align="left">
<font face="Arial" size="2">
<span style=" font-size:10pt">
# white is index 15</span></font>
</div>
<div align="left">
<font face="Arial" size="2">
<span style=" font-size:10pt">
white = 15</span></font>
</div>
<div align="left">
<font face="Arial" size="2">
<span style=" font-size:10pt">
<br />
</span>
</font>
</div>
<div align="left">
<font face="Arial" size="2">
<span style=" font-size:10pt">
# Replace the noise colors with white</span></font>
</div>
<div align="left">
<font face="Arial" size="2">
<span style=" font-size:10pt">
for color in noise_colors:</span></font>
</div>
<div align="left">
<font face="Arial" size="2">
<span style=" font-size:10pt">
&#160;&#160;&#160; a[a==color] = white</span></font>
</div>
<div align="left">
<font face="Arial" size="2">
<span style=" font-size:10pt">
<br />
</span>
</font>
</div>
<div align="left">
<font face="Arial" size="2">
<span style=" font-size:10pt">
# Build the clean image from the array</span></font>
</div>
<div align="left">
<font face="Arial" size="2">
<span style=" font-size:10pt">
im1 = Image.fromarray(a, mode='P')</span></font>
</div>
<div align="left">
<font face="Arial" size="2">
<span style=" font-size:10pt">
<br />
</span>
</font>
</div>
<div align="left">
<font face="Arial" size="2">
<span style=" font-size:10pt">
# Give it the original palette</span></font>
</div>
<div align="left">
<font face="Arial" size="2">
<span style=" font-size:10pt">
im1.putpalette(palette)</span></font>
</div>
<div align="left">
<font face="Arial" size="2">
<span style=" font-size:10pt">
<br />
</span>
</font>
</div>
<div align="left">
<font face="Arial" size="2">
<span style=" font-size:10pt">
# Save it out</span></font>
</div>
<div align="left">
<font face="Arial" size="2">
<span style=" font-size:10pt">
im1.save(&quot;clean_image.gif&quot;)</span></font>
</div>
</body>
</html>