<jupyter_start><jupyter_text>Analiza podataka kretanja vozila iz .csv fileaDemo kako uz pomoc python programskog jezika i _matplotlib_ biblioteke za prikaz grafova Prvo uvezemo potrbne bibliteke<jupyter_code>import pandas as pd
import matplotlib.pyplot as plt
import matplotlib as mpl
from numpy import genfromtxt, arange, sin, pi
from matplotlib import style
from matplotlib import dates as mpl_dates
import numpy as np
from pandas.plotting import register_matplotlib_converters
register_matplotlib_converters()<jupyter_output><empty_output><jupyter_text>Unese se ime datoteke s podacima i mapiraju se polja sukladno zapisanome.U ovom primjeru podaci su razdvojeni s znakom ',' ali cesti je slucaj kada su podaci odvojeni nekim drugim znakom te se to treba posebno naznaciti kako bi program znao granice izmedu polja.<jupyter_code>filename='GPSLOG10.CSV'
#plt.style.use('ggplot')
data=pd.read_csv(filename, header=None, delimiter=',', names=['Sentence','Time','Validity','Latitude','NS',
                                                              'Longitude','EW','Speed','Direction','Date',
                                                              'NA1','NA2','Checksum','Temperature'])<jupyter_output><empty_output><jupyter_text>Line plotSada smo spremni za prikazati prikupljene podatke.Prvo mozemo prikazati jednostavan s/t graf - brzinu u vremenu. Kako je brzina zapisana u cvorovima, a mi je zelimo prikazati u km/h potrebno izvrsiti konverziju. 1 nauticna milja odgovara 1.852 km.Svaki graf treba imati oznacene osi. S komandom plt.xlabel i ylabel oznacili smo osi grafa i analogno tome imenovan je i graf kako bi citatelj znao što graf predstavlja.Naravno, pojedinacni grafovi se mogu posebno spremiti u visokoj rezoluciji i zeljenom formatu za kasniju upotrebu.<jupyter_code>#otvori graf u novom prozoru
#%matplotlib qt
plt.plot(data['Time'],data['Speed']*1.852, 'b-',label='Brzina')

plt.legend(loc='upper left')
plt.xlabel ('time')
plt.ylabel ('v [km/h]')
plt.title('Brzina kretanja vozila')
#plt.savefig('GrafKretanjaBrzineVozila.png',format='png', bbox_inches='tight', dpi=100)<jupyter_output><empty_output><jupyter_text>Dodatno se mogu izracunati i pogledati razni podaci koje nas zanimaju.Ako npr. zelimo znati koja je bila maksimalna brzina kojom se vozilo kretalo to se moze vidjeti na sljedeci nacin:<jupyter_code>print('Maksimalna brzina = ',np.max(data['Speed']*1.852) , 'km/h')<jupyter_output>Maksimalna brzina =  99.73020000000001 km/h<jupyter_text>Ako nas zanimaju podaci o temperaturi moguce je cak koristiti i ugradene statisticke funkcije za izracunati zeljene podatke<jupyter_code># prikazi graf inline
%matplotlib inline 
plt.rcParams["figure.figsize"] = (10,5)
plt.plot(data['Time'],data['Temperature'], 'g', linewidth=2,label='Temperatura')

plt.legend(loc='upper left')
plt.xlabel ('time')
plt.ylabel ('$\Theta \, [^\circ C]$')
plt.title('Temperatura tokom puta')

print ('Minimalna temperatura: ',np.min(data['Temperature']), '°C')
print ('Maximalna temperatura: ',np.max(data['Temperature']), '°C')
print ('Razlika temperature: ',np.max(data['Temperature']) - np.min(data['Temperature']), '°C')
print ('Razlika temperature: ','{:.2f}'.format(np.ptp(data['Temperature'])), '°C')
print ('Prosjecna temperatura: ', '{:.2f}'.format(np.mean(data['Temperature'])), '°C ± ',
       '{:.2f}'.format(np.std(data['Temperature'])), '°C')<jupyter_output>Minimalna temperatura:  25.73 °C
Maximalna temperatura:  27.99 °C
Razlika temperature:  2.259999999999998 °C
Razlika temperature:  2.26 °C
Prosjecna temperatura:  26.64 °C ±  0.57 °C<jupyter_text>Ako želimo plotati ove dvije veličine na istom grafu da vizualno utvrdimo postojanje korelacije možemo kreirati `subplot`<jupyter_code>fig, ax1 = plt.subplots()
plt.title('brzina i temperatura tokom puta')


l1,=ax1.plot(data['Time'],data['Speed']*1.852, 'b-', label='Speed')
ax1.set_xlabel('time')
ax1.set_ylabel('v [km/h]', color='b')
ax1.tick_params('y', colors='b')

ax2 = ax1.twinx()
l2,=ax2.plot(data['Time'],data['Temperature'], 'g', alpha=0.7, label='Temperature')
ax2.set_ylabel('$\Theta \, [^\circ C]$', color='g')
ax2.tick_params('y', colors='g')

plt.legend([l1, l2],["Speed", "Temperature"])<jupyter_output><empty_output><jupyter_text>Uvidom u graf ne mozemo vizualno utvdriti postoje zavisnosti jedve velicine o drugoj, ali se moze primjetiti trend porasta temperature s vremenom.Koji je tocan uzrok tome treba dodatno istraziti sto nije predmet ovog rada.  Scatter plotKoristeci funkciju _scatter_ koji za razliku od _line_ ne spaja susjedne točke linijom možemo prikazati kretanje vozila u koordinatnom sustavu.Dodavanjem vrijednosti parametru _c_ (color) možemo prikazati i dodatnu dimenziju, a to je u ovom slučaju brzina kretanja prikazana putem obojene skale.<jupyter_code>plt.rcParams["figure.figsize"] = (10,8)
fig, ax = plt.subplots()

p=ax.scatter(data['Longitude'],data['Latitude'],c=data['Speed']*1.852,marker='o',cmap='jet') 
#RdYlGn, jet, viridis // _r - rev
fig.colorbar(p)

plt.xlabel ('Longitude')
plt.ylabel ('Latitude')
plt.title('Pozicija i brzina objekta')<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.1293863948245442, 'fraction_numerical': 0.020388159184473634, 'mean_word_length': 5.85752688172043, 'pattern_counts': {'":': 0, '<': 27, '<?xml version=': 0, '>': 27, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 2, 'word_list_counts': {'cursed_substrings.json': 4, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '7', 'dir': 'jupyter-structured-clean-dedup', 'id': '465971', 'license': 'MIT', 'n_tokens_mistral': 2063, 'n_tokens_neox': 1973, 'n_words': 475, 'path': 'dataAnalysis/AnalizaKretanjaVozila.ipynb', 'repo_name': 'KristijanCetina/BachelorThesis', 'size': '5101'}