Analiza plików .txt z programu ScopeDAC
Przeglądanie długiego pomiaru w programie ScopeDAC jest dość kłopotliwe. Pliki .txt są dość duże, tak że programy typu Excel/OO Calc/Numbers sobie z nimi nie radzą (mój był wielkości 4MB - 131k linii czyli próbek), tzn. jakiekolwiek poprawki generowanego wykresu powodują, że program zamiera na dłuższą chwilę.
Konwersja pliku
Plik dostajemy w postaci tzw. CSV (Comma Separated Values), do analizy programem gnuplot potrzebny jest plik w którym wartości w każdej z linii oddzielone są odstępami lub tabulacjami. Dodatkowo gnuplot oczekuje wartości z kropką dziesiętną, a ScopeDAC używa przecinka. Wykorzystałem skrypt perl (comtospaces.pl):
#!/usr/bin/perl
$in = @ARGV[0] or die "nazwa pliku we\n";
$out = @ARGV[1] or die "nazwa pliku wy\n";
open IN, "<", $in or die "nie mozna otworzyc pliku we\n";
open OUT, ">", $out or die "nie mozna otworzyc pliku wy\n";
while($i = <IN>) {
$i =~ tr/,/\t/;
#$i =~ tr/./,/;
print OUT $i;
}
close OUT;
close IN;
Przykładowe uruchomienie:
$ perl comtospaces.pl ATR.txt ATR.dat
Usunięcie zbędnych linii z pliku
Do analizy w gnuplot niepotrzebne są nagłówki generowane przez ScopeDAT. Należy z pliku ATR.dat usunąć linie 1 do 3. Oraz przyglądnąć się dalszym liniom. W moim przypadku próbki od 0 do 40 zawierały błędny czas pomiaru (858.993). Te linie także usunąłem.
Wykres w gnuplot
Do wygenerowania wykresu potrzebny jest program gnuplot (najlepiej przygotowany dla środowiska graficznego, tzn. w ubuntu potrzebny jest pakiet gnuplot-qt). Po jego uruchomieniu generujemy wykres w następujący sposób:
$ gnuplot
G N U P L O T
Version 4.6 patchlevel 3 last modified 2013-04-12
Build System: Linux x86_64
Copyright (C) 1986-1993, 1998, 2004, 2007-2013
Thomas Williams, Colin Kelley and many others
gnuplot home: http://www.gnuplot.info
faq, bugs, etc: type "help FAQ"
immediate help: type "help" (plot window: hit 'h')
Terminal type set to 'wxt'
gnuplot> plot "ATR.dat" using 2:3 with lines title "1W", "ATR.dat" using 2:4 with lines title "AVR"
Tutaj należy się krótki komentarz. W moim przypadku plik .txt zawierał w pierwszej kolumnie numer próbki, w drugiej czas pomiaru, w trzeciej zrzut z linii 1-wire, w czwartej był to dodatkowy pin z mikrokontrolera, pokazujący co kontroler wystawia na magistralę 1-wire. Tak więc wykres składa się z dwóch linii łamanych, każda z nich pobrana jest z pliku ATR.dat i jako X brane są wartości z drugiej kolumny (czas próbki), a jako Y brane są odpowiednio wartości z trzeciej i czwartej kolumny (odpowiednio dla opisu w legendzie “1W” i “AVR”). W przypadku potrzeby zapisu wyniku do pliku można to wykonać następująco:
gnuplot> set terminal png size 20000,800
Terminal type set to 'png'
Options are 'nocrop font "/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf,12" fontscale 1.0 size 20000,800 '
gnuplot> set output 'test.png'
gnuplot> plot "ATR.dat" using 2:3 with lines title "1W", "ATR.dat" using 2:4 with lines title "AVR"
Wynik zostanie zapisany w pliku test.png
Brak komentarzy:
Prześlij komentarz