čtvrtek 18. srpna 2016

Import kontaktů z csv do thunderbird

Import kontaktů do poštovního klienta Thunderbird je velmi jednoduchý stačí mít pouze soubor s kontakty ve správném formátu. Tímto souborem může být csv soubor.

Při zjišťování toho, jak má takový soubor vypadat jsem postupoval velmi jednoduše a to tak že jsem si nejprve jeden z adresářů z Thunderbird vyexportoval. Záznam v adresáři je velmi podrobný a obsahuje velké množství informací nám však bude stačit znát jméno a email kontaktu.

Soubor s hlavičkou vytvořenou Thunderbird najdete dole a je v něm i jeden ukázkový příklad jak málo údajů stačí a klidně si vystačí i s emailovou adresou, je však dobré zachovat počet prázdných polí před ní. Jednotlivé sloupce jsou potom odděleny pomocí čárek.

Tady je ukázkový soubor: https://uloz.to/!ha73Qvj13/ukazka-csv

A tady je pár obrázků jak postupovat při importu:


Vybereme export z csv.
Teď je důležité zaškrtnou volbu první položka obsahuje názvy sloupců a potom se proklikat všemi kontakty tlačítkem další.


 Tak a je hotovo, máme kontakt na kačera skrblíka v adresáři.


středa 10. srpna 2016

XY graf v gnuplot

Dalším často využívaným grafem u techniků je grav závislosti něčeho na něčem jiném v souřadnicích xy. Graf je možné velmi pohodlně vytvořit v Calcu, Excelu a dalších tabulkových procesorech klidně i na webu.  Tady je krátký scriptík pomocí kterého je možné vykreslit celkem pěkný graf.

set key font ",12" right   #nastaví velikost písma legendy

set key outside  #nastavi legendu vne grafu

set key autotitle columnheader # nastaví legendu grafu podle prvního sloupce 

set title "TESTOVACI GRAF" font ",15" # nadpis grafu

set style line 100 lt 1 lc rgb "black" lw 1 # všechny čáry budou černé

set grid ls 100
set style data lines # vkreslení dat jako spojenou čáru

set xlabel "frequency [GHz]" font ",15" 
set ylabel "reflection coefficient [dB]" font ",15"


set tic scale 5  # y tic
set ytics 0.2 font ",15"
set xrange [1:10]  # set x axis range
set yrange [-1:1]  # set y axis range
set xtics 1 font ",15"  # set tic at the x axis

 n = "test.csv" # zjednodušení jména souboru ze kterého pochází data pro graf

plot n using 1:2 ls 1, n using 1:3 ls 1




úterý 19. ledna 2016

Směrové charakteristiky gnuplot (Radiation patters in gnuplot - script)

Při psaní diplomové práce jsem stál před rozhodnutím v čem udělat polární graf se směrovými charakteristikami. Tyhle možnosti se mi nabízely: Matlab, scilab, calc, excel, gnuplot. Používám linux a proto jsem se rozhodl vyzkoušet gnuplot o kterém jsem slyšel že umí vážně pěkné grafy. Nějakou dobu jsem hledal vhodný skript, který by mi grafy vykreslil, ale žádný nedosahoval takového vzhledu grafu jaký jsem si představoval. No a tak jsem začal tvořit sám. Na následujících řádcích popíšu jednotlivé funkcionality skriptu a co je třeba udělat aby byl graf použitelný.

Nejprve je nutné provést přípravu souboru s daty, která chceme vykreslit. Je dobré mít data v textovém souboru ve dvou a více sloupcích. V prvním sloupku je úhel ve stupních a v dalším jsou hodnoty. Pozor jako desetinné oddělovače je nutné použít tečky. Data mohou vypadat následovně:

                                                                  91    -0.5206
                                                                  92    -0.4429
                                                                  93    -0.3713
                                                                  94    -0.3063
                                                                  95    -0.2484
                                                                  96    -0.1983
                                                                  97    -0.1561
Nejprve uvedu jak jsem došel k tomuto skriptu, výsledný skript bude ke stažení na konci článku a bude ho možné zadat rovnou zkopírováním do gnuplotu.
Gnuplot nainstalujte tak jak jste zvyklí a spusťte ho v konzoli nejlépe v místě kde máte před-připravený textový soubor s daty.

Nejprve začneme definicí polárního grafu a úhlu ve stupních, další 3 řádky nastavují jakési velikosti. Set key font nastavuje umístění a velikost legendy v našem grafu. Set key outside nastavuje legendu do vnější oblasti grafu.

set angle degree
set polar
set size ratio 1
set tmargin 3
set bmargin 3
set key font ",12" right
set key outside

Další řádek nastavuje název grafu a velikost písma. To co je psáno v uvozovkách je možné měnit.

set title "Směrová charakteristika" font ",15"

Pokračuje definice stylu a barvy mřížky, nastavení mřížky na polární a zákaz zobrazení rámečku, osy x a osy y. Poslední parametr zakazuje osu hodnot na polárním grafu. Zakomentováním a odkomentováním řádku číslo dvě dostaneme plné čáry místo tečkovaných.

set grid polar 10 lc rgb "gray30"
set grid layerdefault lt 0 linewidth 1,  lt 0 linewidth 1
set style data lines lw 2
unset border
unset xtics
unset ytics
unset raxis

Další nastavení je nastavení, které je možné celkem úspěšně měnit. V prvním případě se mění krok po kterém bude vykreslována mřížka úhlů. Hodnotami rmin a rmax nastavujeme rozsah na ose hodnot.

set grid polar 30
rmin = -30
rmax = 10

Nyní následují tři složitější řádky. Prvním nastavujeme rozsah pomocí výše definovaných proměnných. Druhým říkáme jaký bude popisek na ose hodnot. Definujeme jeho posunutí tak aby nebyl přes čáry, rotaci zrcadlení. Změny může každý vyzkoušet. Třetí řádek je řádek funkce. Ta nám dělá popisky na ose úhlu. Popis je zdlouhavější a funkci každý rychle pochopí. (Vše musí být na jednom řádku, sem to tak ale nedostanu tak pozor).

                                                        set rrange[rmin:rmax]
                           set rtics axis scale 0.5,0 nomirror rotate by 0  offset 1, 0

set_label(x, text) = sprintf("set label '%s' at (((abs(rmin)+rmax)+5)*cos(%f)), (((abs(rmin)+rmax)+5)*sin(%f))     center", text, x, x) #this places a label on the outside

set_label2(x, text) = sprintf("set label '%s' at (0), (-50) center font ',12'", text, x, x) #this places a label on the outside

Dále následuje provedení funkce, to jest vykreslení stupňů tam kde mají být. Na posledním řádku ještě vykresluji popisek.

                                                        eval set_label(90, "0°")
                                                        eval set_label(120, "-30°")
                                                        eval set_label(150, "-60°")
                                                        eval set_label(180, "-90°")
                                                        eval set_label(210, "-120°")
                                                        eval set_label(240, "-150°")
                                                        eval set_label(270, "180°")
                                                        eval set_label(300, "150°")
                                                        eval set_label(330, "120°")
                                                        eval set_label(360, "90°")
                                                        eval set_label(30, "60°")
                                                        eval set_label(60, "30°")
                                                        eval set_label2(270, "Directivity [dBi]")

Tak vykreslení se provede pomocí příkazu plot. Já tady uvedu příklad pro vykreslení více křivek do jednoho grafu. Data jsou uložena ve sloupcích v tak jak je nazanačeno na začátku. Za příkazem plot probíhá vykreslení dvou pomocnych křivek pro lepší orientaci v grafu na hodnotě 5 a 15.

plot 5 dt 3 lw 1 lc rgb "gray30" notitle, 15 dt 3lw 1 lc rgb "gray30" notitle, "test.csv" using ($1):($2) title 'prvni sloupec' ls 1 lw 2 lc 1, "test.csv" using ($1):($3) title 'druhy sloupec' ls 2 lw 2 lc 2

Výsledek je potom možné exportovat do vektorového formátu svg a dále upravovat například pomocí inkscape.

Tak a takhle může vypadat výsledek. Myslím že je celkem podařený a za tu práci to stálo. Mějte se.

Tady je soubor se skriptem, asi je třeba doplnit příponu. http://uloz.to/xpJFV7bq/polargraph-zip