dersblog

Grafikten Veri Cikartmak

Bazen mesela grafiksel gördüğümüz bir zaman serisinin verisi elde olmayabilir. Veriyi grafikten çıkartmak için, örneğe bakalım

Veriyi sayısal olarak çıkartmak için imaj işleme (image processing) metotlarını kullanabiliriz. Mesela bir metot yanyana iki pikselin farkını hesaplar, eğer fark büyükse orada bir "kenar" vardır. Bu teknikle yukarıdaki imajdaki eğri bulunabilir.

Ana imaj

https://en.wikipedia.org/wiki/File:Extinction_intensity.svg

PGM'e cevirelim

convert -crop 495x245+29+54 -resize 900x400 Extinction_intensity.svg  extinct.pgm

Imaj isleme kodu

import pandas as pd
from PIL import Image

im2=Image.open("extinct.pgm")
grady,gradx = np.gradient(im2)
grady = (grady>0).astype(float)
extin = np.argmax(grady,axis=0)
df = pd.DataFrame(extin)
df2 = df.max()-df
mymin = 1.
mymax = 52. - mymin
df3 = df2 / df2.max() * mymax
df3 = df3 + mymin
idx = np.linspace(542,1,len(df3))
df4 = df3.set_index(idx)
df4[0].to_csv('extinct.csv',header=None,index=None)

ext = pd.DataFrame(pd.read_csv('extinct.csv',header=None))
ext = ext.set_index(np.linspace(542,1,len(ext)))
ext[0].plot()
ext = ext[0]
plt.savefig('ex1.png')


Yukarı