Ich habe eine Textdatei mit Messdaten, die so aussieht.Werte an Koordinaten zu Bild
x y z
1 3 -2
2 1 -3
3 1 1
2 2 3
1 2 2
2 3 0
Dies würde die folgenden Mess implizieren (auf einer x, y-Gitter)
-2 0
2 3
-3 1
ich ein Bild aus diesen Werten erstellt werden soll, wo keine Messung, dass das Bild transparent ist, bedeuten würde. Wenn möglich, würde ich die Z-Werte (von zB -9.4 bis +3.2) zu einer Colormap wie colormap.jet
zuordnen Ich habe versucht, dies mit der Python Image Library und Putpixel tun, aber das ist sehr langsam und ich bin sicher, dass es einen besseren Weg geben muss, dies zu tun.
Mein aktueller Code: basePath = os.path.dirname (os.path.realpath (Datei)) # definiert das Verzeichnis, in dem die aktuelle Datei srcFiles = glob.glob befindet ('* Pkt.)
für filename in srcFiles:
data = pd.read_csv(os.path.join(basePath, fileName), names=['x', 'y', 'z'], delim_whitespace=True)
print fileName
maxX = data.x.max()
minX = data.x.min()
maxY = data.y.max()
minY = data.y.min()
minZ = data.z.min()
maxZ = data.z.max()
width = maxX-minX
height = maxY-minY
img = Image.new('L', (int(width), int(height)))
for x in range(int(width)):
for y in range(int(height)):
value = data[(data['x'] == (minX+x)) & (data['y'] == (minY+y))]['z']
if len(value) == 0:
value = 99.;
img.putpixel((x,y),int(value))
img.save('test.png')