# &kst; gennemgang

## Velkommen

Velkommen til &kst;. På nogle få minutter kommer du at være på vej med at udførsel af de talrige funktioner i denne plotnings- og datahåndteringspakke. Her er kun nogle af de opgaver du kan opnå med &kst;:

- Hurtigt plotte flere grafer kun ved brug af kommandolinjen.

- Analysér data med et omfattende sæt værktøjer, inklusive histogrammer, effektspektre og egne ligninger.

- Forstør og formindsk interessante områder i plot uden anstrengelse, ved enten at bruge musen eller tastaturet.

- Overvåg levende strømmende data med mulighed for realtidsplotning i &kst;.

Denne gennemgang dækker det grundlæggende i at installere, køre og arbejde med &kst;. Den er baseret på en hurtig tur gennem &kst; ved Barth Netterfield. Du indbydes til yderligere at udforske en hvilken som helst funktion når som helst. Alle funktioner er dokumenterede i resten af denne håndbog.

## Start &kst; fra kommandolinjen

En almindelig brug af &kst; er til hurtigt at oprette plot med data fra kommandolinjen. Denne måde at oprette plot kræver næsten intet kendskab til den grafiske grænseflade i &kst;, men laver alligevel umiddelbart brugbare resultater.

Denne gennemgang bruger en demonstrationspakke med datafiler som installeres med &kst; i `$`KDEDIR`/share/apps/kst/tutorial`, hvor `$`KDEDIR`` er stedet hvor &kde; er installeret på dit system (du kan finde det med kommandoen `kde-config --prefix`).

Hvis du har en version af &kst; ældre end 1.1.0, finder du gennemgangens data direkte på http://omega.astro.utoronto.ca/kst/tutorial/kst_tutorialdata.tgz. Hent pakken og pak den ud, og gå til den resulterende mappe:

    tar -zxvf kst_tutorialdata.tgz
    cd kst_tutorialdata

For at få en oversigt over alle tilgængelige kommandolinjeflag i &kst;, skriv:

    kst --help

En syntaksbeskrivelse og liste med kommandoer som ligner det følgende vises:

    Brug: kst [Qt-vælgare] [KDE-vælgare] [vælgare] [Files]

    Kst: et datavisningsprogram

    Generella vælgare:
      --help                    Vis hjælp om flag
      --help-qt                 Vis flag specifikke for Qt
      --help-kde                Vis flag specifikke for KDE
      --help-all                Vis alle flag
      --author                  Vis information om forfattere
      -v, --version             Vis versionsinformation
      --license                 Vis licensinformation
      --                        Slut på flag

    Flag:
      -F <dataFile>             Angiv datafil: bruges for at sætte forvalgt Kst-fil ud af kraft [|]
      -y <Y>                    Felt for Y-akse (flere tillades)
      --ye <equation>           Ligningen for Y-akse (flere tillades)
      -e <E>                    Felt for Y-fejl (flere tillades)
      -x <X>                    Felt eller interval for X-akse [INDEKS]
      --xe <X>                  X-vektor for ligninger x0:x1:n [INDEKS]
      -p <Y>                    Felt for effektspektrum (flere tillades)
      -h <Y>                    Felt for histogram (flere tillades)
      -r <f>                    Samplingsfrekvens for effektspektrum [60.0]
      --ru <U>                  Enheder for samplingsfrekvens for spektral effekttæthet [Hz]
      --yu <U>                  Enheder for Y-vektorer [V]
      -l <P>                    FFT-længden er 2^P [10]
      -f <F0>                   Første post at læse [-2]
      -n <NS>                   Antal rammer at læse [-2]
      -s <NS>                   Antal rammer at springe over for hver læsning [-1]
      -a                        Anvend lavpassfilter inden rammer springes over
      -m <NC>                   Separate plot arrangeret i antal søjler
      -d                        Vis som punkter i stedet for kurver
      -g                        Vis i forklaringsrude
      --print <file>            Udskriv til fil og afslut [<none>]
      --png <file>              Gem som en PNG-fil og afslut [<none>]

    Parametre:
      Files                     Datafiler (hvis -y angivet) eller *.kst-fil

Flag specifikke for &kst; på liste under afsnittet `Flag:`. Hvor det passer angives standardværdier med kantede parenteser i slutningen af beskrivelsen af flaget. Disse værdier bruges for flag som ikke angives.

Først tager vi et kig på ASCII-filen `gyrodata.dat`, som indgår i demonstrationspakken. ASCII-filer er en af de mange filtyper som &kst; kan læse. I ASCII-filer er data arrangeret i søjler, hvor hver søjle svarer til et felt, og søjlenummeret (begyndende på 1 fra venstre til højre) svarer til feltnavnene. Denne specielle ASCII-fil indeholder tre søjler, og har altså feltnavnene 1, 2 og 3. For at oprette et plot med den første søjle, skriv blot:

    kst -y 1 gyrodata.dat

Alle data i den første søjlen tegnes op:

Bemærk at intet felt blev angivet for plottets X-akse, så &kst; bruger standardvektoren INDEKS, som forventet. INDEKS-vektoren er en speciel vektor i &kst; som indeholder heltal fra 0 til N-1, hvor N er antal dataværdier i tilsvarende vektor for Y-aksen. Luk &kst; ved at vælge Afslut i menuen Fil, eller ved at skrive Ctrl Q.

`gyrodata.dat` indeholder 20000 rammer, så måske vil du kun kigge på en del af inddata. For at kun plotte 10000 rammer, begyndende på post 7000, skriv:

    kst -y 1 -f 7000 -n 10000 gyrodata.dat

En af styrkerne ved &kst; er dets mulighed for at plotte realtidsdata. Antag at nye data hele tiden tilføjes til slutningen på `gyrodata.dat`. Ved et sådant scenario, ville det være nyttigt at kun plotte den sidste del af data. For kun at plotte de seneste 10000 rammer i `gyrodata.dat`, indskrives følgende:

    kst -y 1 -n 10000 gyrodata.dat

Hvis `gyrodata.dat` opdateredes, vil plottet fortsætte med at bevæge sig for kun at vise de sidste 10000 rammer.

I stedet for direkte at indlæse en datafil, kan &kst; bruge ASCII-data fra stdin som en datakilde. For at angive stdin som inddata, skrives blot `stdin` som et af filnavnene. Der er mange måder at bruge denne mulighed, såsom at bruge &kst; som en del af en rækkefølge af sammenkoblede pipes:

    cat gyrodata.dat | awk '{print $1 + 2}' | kst -y 1 stdin

Kommandoen ovenfor bruger `awk` til at tilføje 2 i første søjle af `gyrodata.dat` inden resultatet sendes videre til &kst;.

Bemærk at beskrivelsen af flaget `y` angiver at flere forekomster af flaget tillades. Det gør det muligt hurtigt at plotte mere end en kurve, eller til og med mere end et plot. For at plotte alle tre felter i `gyrodata.dat` i separate plot, indskrives følgende:

    kst -y 1 -y 2 -y 3 -m 1 gyrodata.dat

Flaget `m` angiver at adskilte plot skal bruges i stedet for et enkelt plot, som vises nedenfor:

## En hurtigtur i Dataguiden

Selv om det er hurtigt og bekvemt at bruge &kst; fra kommandolinjen, kan der være situationer hvor det er nemmere at importere data fra den grafiske brugergrænseflade, for eksempel om du allerede har &kst; åben med anden data indlæst. Eller du måske helt enkelt foretrækker at bruge den grafiske brugergrænseflade. Ved at blive bekendt med begge måder at importere data, kan du bruge &kst; effektivere.

Dataguiden sørger for en hurtigt og enkel måde at oprette vektorer, kurver og plotmer i &kst; ud fra datafiler. For at starte guiden, vælges Dataguide... i menuen Data eller der klikkes på knappen på værktøjslinjen. Du bliver bedt om at vælge en datakilde. Gå hen til filen `gyordata.dat` som bruges af kommandolinjeeksemplerne og klik på Næste. Følgende vindue vises:

Dataguidens anden skærm Dataguidens anden skærm

Felterne som er tilgængelige i `gyrodata.dat` listes til venstre. Du kan filtrere listen med markerede felter ved at skrive en streng at matche ind i tekstfeltet ovenfor listen (jokertegn såsom `*` understøttes). Markér felterne 1, 2 og 3.

Afsnittet Dataområde bruges til at angive dataintervallet som skal læses for de valgte vektorer i inddatafilen. Følgende beskrivelse forudsætter kendskab til rammer. I korthed er en ramme blot et antal datasamplinger, og hver datafil består af et antal rammer. For en detaljeret beskrivelse af begrebet, se supportingadditionalfileformatsdatasourceconceptsframes.

Start, Tæl fra slutningen, Område og Læs til slutningen

- Ved at bruge disse fire indstillinger, kan nedre og øvre grænse for dataintervallet angives. Vælg for eksempel Tæl fra slutningen og skriv 10000 som Antal rammer for kun at læse de sidste 10000 rammer. Hvis `gyrodata.dat` bliver opdateret i realtid, vil yderligere tilføjelser i slutningen af filen blive læst.

Læs en sampling pr N rammer og Lavpasfilter først

- Foruden nedre og øvre grænse for dataområdet, kan samplingerne som skal læses fra det valgte interval angives. Hvis Læs en sampling pr N rammer (hvor N er den angivne værdi) ikke er markeret, læses alle samplinger i det valgte interval. Alternativt, kan rammer i datafilen springes over ved at markere Læs en sampling pr N rammer. Afmarkér indtil videre Læs en sampling pr N rammer.

Effektspektrum og X-akse-indstillinger kan angives i afsnittet Plottyper.

X-Y, Effektspektrum og X-Y og effektspektrum

- Vælg X-Y og effektspektrum for at oprette plot både med data selv og deres effektspektrum. For mere information om tilgængelige tilvalg med effektspektrum, se power-spectra.

X-aksevektor

- Vektoren kan bruges som uafhængig vektor for plottet. Du kan vælge et felt fra datafilen, eller INDEKS-vektoren. Eftersom `gyrodata.dat` ikke indeholder en X-akse-vektor, efterlades valget INDEKS.

Afsnittet FFT-tilvalg i dataguiden er kun tilgængelig hvis et effektspektrum skal plottes. Denne guide beskriver ikke effektspektre i detalje, så brug standardindstillinger for dette afsnit.

Når du er tilfreds med med alle indstillinger, klik på på Næste for at gå til næste vindue.

Dataguidens tredje skærm Dataguidens tredje skærm

Herfra kan du ændre generelle plotindstillinger. De fleste indstillinger er selvforklarende. Vælg Et nyt plot pr kurve for Kurvens placering og I nyt vindue for Plotplacering. Det placerer alle seks plot (tre kurver og tre effektspektre) i samme vindue.

Når du er tilfreds med alle indstillinger, klik så på Afslut så laves plottene:

De genererede plot De genererede plot

At generere plottene krævede en vis indsats, så vi vil gemme nuværende session i &kst; (den bruges i vejledningens næste afsnit). Vælg Gem som... i menuen Fil, og gem sessionen som `min_kst_session.kst`.

Gem en Kst-session Gem en Kst-session

At gemme en session i &kst; gemmer alle plot, dataobjekter (du vil lære om dem senere), og layouter som findes på det tidspunkt hvor sessionen gemmes.

Når filerne er gemt, kan du afslutte &kst;.

## Grundlæggende plothåndtering

Nu når du har fundet ud af at oprette plot i &kst;, kan vi udforske nogen af funktionerne for plothåndtering som er i den grafiske grænseflade i &kst;. Start &kst; fra kommandolinjen med filen `min_kst_session.kst` som du tidligere gemte:

    kst min_kst_session.kst

Alle plot du tidligere oprettede skulle nu være indlæst i &kst;. Kig på plottet med teksten `PSD (V/Hz^{1/2})` på Y-aksen. For nærmere at kigge på plottet, højreklikkes på det og menupunktet Maksimér, som vises nedenfor vælges:

Maksimér et plot Maksimér et plot

Plottet er nu maksimerat i nuværende vindue. Bemærk at for de alt for høje X-værdier er plottet næsten helt fladt, så det ville være nyttigt kun at kigge på området i plottet som ser interessant ud. For at gøre det, så sørg for at du er i XY-musezoometilstand (vælg XY-musezoom i menuen Plot, eller klik på knappen i værktøjslinjen). Træk derefter blot et rektangel fra cirka (4, 0,0025) til (0,0) som vist nedenfor. Bemærk at musemarkørkens koordinater vises i nederste højre hjørne i vinduet i &kst; (hvis de ikke er der, så sørg for at Vis statuslinje er markeret i menuen Opsætning).

Plotakserne ændres til at zoome ind på det valgte område i plottet. Du bemærker måske at der er en top i venstrekanten af effektspektret som går forbi den nye grænse for Y-aksen. Antag at du vil kigge på det højeste punkt af toppen. Højreklik på plottet og vælg Op i undermenuen Panorér. Plottet vil så blive flyttet opad. Det er formodentlig nemmere at bruge genvejstasten som hører sammen med dette menupunkt. Det gælder for de fleste af zoom- og panoreringsfunktionerne. I dette tilfælde er genvejstasten Pil opad, så den hurtigste måde at flytte opad er at holde tasten Pil opadnede. For når som helst at gå tilbage til maksimal zooming, højreklikkes på plottet og så vælges Zoom maksimalt i undermenuen Zoom (eller tryk på M, genvejstasten som hører sammen med Zoom maksimalt).

Genopret størrelsen af plottet med effektspektre ved at højreklikke på plottet og afmarkere Maksimér.

Kig nu på plottet med Y-aksen som hedder `Søjle 2` og `Søjle 3`. De er plot af tipgyro og rullegyro, fra flyvningen af BOOMERANG 1998. Eftersom de to plot hører sammen, kan det være nyttigt at zoome og panorere dem samtidigt. Klik på firkanterne som er i øverste højre hjørne på de to plot. De skal nu få en mørk farve for at angive at de to plot hører sammen:

Bunden forstørrelse Bunden forstørrelse

Inden vi forsøger at forstørre, skal vi fjerne alle plot udover de to vi arbejder med. Vælg Layouttilstand i menuen Plot eller klik på knappen i værktøjslinjen. Højreklik på plottet og vælg Fjern, for alle plot udover de to vi vil beholde. Højreklik derefter hvor som helst i nuværende vindue og vælg Ryd op i layout. Nu bør de to plot dele hele pladsen inde i vinduet. Gå tilbage til XY-museforstørrelse når du er færdig.

Forsøg nu forstørre på en del af det øverste plot. Du mærker at det nederste plot bliver tomt. Det skyldes at de nederste plot-akser er blevet ændret for at stemme med de øverste plotakser, og der er ingen data i netop dette område i det nederste plot. Tryk på M mens musemarkøren er over et af plottene for at gå tilbage til maksimal forstørrelse for begge plot. Hold nu Ctrl nede (det svarer til at vælge X-museforstørrelse i menuen Plot eller at klikke på knappen i værktøjslinjen). Musemarkøren ændrer form for visuel tilbagemelding. Mens du holder tasten Ctrl nede, tegnes et rektangel i det øverste plot. Bemærk at det prikkede rektangels højde er begrænset så kun X-aksen bliver forstørret. Nu viser begge plottene data når de forstørres, eftersom Y-aksen for et af plottene ikke ændredes.

Du kan hurtigt binde eller frigøre alle plot i vinduet ved at vælge Bunden forstørrelse i menuen Plot eller ved at klikke på knappen i værktøjslinjen.

Når du er færdig med at eksperimentere med forstørrelsesfunktionerne, kan du lukke &kst;. Der er ingen grund til at gemme plottene denne gang (hvis du ikke vil).

## En kort oversigt over dataobjekter

Der er mere i &kst; end kun enkel plotning og visning af data. I dataguiden har du allerede set at &kst; har mulighed for at oprette effektspektre for data. I virkeligheden kan &kst; også oprette andre dataobjekter såsom histogrammer, ligninger og plugin. Et værktøj som kaldes Datahåndtering kan hjælpe dig med at holde styr på alle dataobjekter du laver.

Start &kst; med filen `demo.kst`, som indgår i demonstrationspakken:

    kst demo.kst

Kst med demo.kst Kst med demo.kst

Denne session i &kst; indeholder vektorer og andre dataobjekter som laves ud fra data i `gyrodata.dat`. Det øverste plot indeholder azimutdata, plottet i midten indeholder tipdata i blåt, og det nederste plot viser effektspektret for tipdata i blåt. Lad os først undersøge plottene noget nøjere. Knyt de to plot sammen med teknikken som du lærte i foregående afsnit. Hold derefter Ctrl nede for at bruge X-musezoom. Zoom nu ind på et lille område i det øverste plot (eksempelvis fra 50000 til 53000), for at få beggesammenknyttede plot til at zoome. Du mærker at den blå tipkurve har en negativ korrelation med den røde azimutkurvan. Dette skyldes at tipgyroen var lidt roteret i forhold til azimutaksen (med cirka 0,69 grader). Den egentlige tipværdien `p'` er: hvor `p` er den oprindelige tipværdi. er rotationen af tipgyroen i forhold til azimutaksen, og `a` er azimutgyroen. `p'` tegnes op som den sorte kurve i det midterste plot. Effektspektrum for `p'` er den sorte kurve i plottet længst nede.

Lad os nu tage et kig på hvordan de tre plot oprettedes. For at vise datahåndteringen, vælg Datahåndtering... i menuen Data, eller klik på knappen i værktøjslinjen:

Datahåndtering Datahåndtering

Datahåndteringen indeholder den fuldstændige liste med dataobjekter i nuværende session i &kst;. Den lader dig også redigere og oprette nye dataobjekter. Som du kan se, er der tre kurvor (hver oprettet ud fra et par vektorer), en ligning, to effektspektre og fire datavektorer i listen. Højreklik på C2-GY_PITCH og vælg W1-P1 i undermenuen Fjern fra plot. Dette fjerner kurven fra plottet P1 i vinduet W1. Fjern også PSD2-V3-GY_PITCH fra plottet P3 i vinduet W1 med samme procedure. Nu skulle kun de korrigerede kurver blive vist i plottene:

Kun korrigerede kurver Kun korrigerede kurver

For at se hvordan det korrigerede pitch-gyro oprettedes, markeres C4-cleaned_pitch og der klikkes på knappen Redigér. Dialogen Redigér ligning vil blive vist:

Redigér ligninger Redigér ligninger

Bemærk at ligningen som bruges til at beregne `p'` blev skrevet ind i tekstfeltet Ligning (approksimationen 1 bruges for `cos(-0,69)`). Tøv ikke med at eksperimentere med indstillingerne i dialogen. Klik på O.k. (for at gemme eventuelle ændringer som blev udført) eller Afbryd når du er færdig.

Bemærk at alle dataobjekter har et tal som angives i søjlen Antal brugte. Tallet angiver antal gange som dataobjektet enten bruges af andre dataobjekter eller af plot. Eftersom vi fjernede en kurve og et effektspektrum, skal i det mindste to dataobjekter have 0 angivet i søjlen. Klik på Ryd for at fjerne alle ubrugte dataobjekter permanent.

Klik på Luk for at lukke datahåndteringen. Du kan afslutte &kst; nu hvis du ønsker det.

## Et kig på plugin og begivenhedr

Vi slutter vor rejse gennem ved &kst; med at kigge på to specifikke typer af data: plugin og begivenhedsovervågning.

Et plugin er et fleksibelt dataobjekt, hvis opførsel helt og holdent afhænger af den specifikke pluginfil som vælges. Pluginnet kan være et som indgår i den almindelige distribution af &kst;, eller en pluginfil fra tredje part. Du finder instruktioner om hvordan man skriver og kompilerer egne pluginfiler i creatingplugins. Plugin lader &kst; udføre vilkårlige operationer på en datamængde, eftersom det eneste krav for et plugin er at modtager et sæt inddatavektorer og skalarer, og giver en sæt uddatavektorer og skalarer.

Som et eksempel skal vi forsøge at tilpasse en enkelt linje til en lille mængde datapunkter. Start &kst; med et plot af første felt i datafilen `maksima.dat` som indgår i demonstrationspakken:

    kst -y 1 -d maksima.dat

Flaget `d` angiver at kun punkter skal tegnes, ikke linjer. Plottet med datapunkter skulle nu blive vist:

Plot med datapunkter Plot med datapunkter

Åbn nu datahåndteringen, Klik på Plugin... i afsnittet Ny for at oprette et nyt pluginobjekt. Under Pluginvalg, vælg pluginnet Lineær indstilling. Dette bestemte plugin kræver to inddatavektorer, en som indeholder X-værdier og en anden som indeholder Y-værdier for datapunkterne som skal tilpasses. Vælg V1-INDEX for Inddatavektor - X-felt og V2-1 for Inddatavektor - Y-felt. Klik derefter på O.k. Du bemærker at det nye pluginobjekt har oprettet slavevektorer til at opbevare uddata. Klik på Kurve... for at oprette en ny kurve ud fra uddatavektorerne. Vælg V1-INDEX for X-aksevektor og P1-kstfit_linear_unweighted-Y Fitted for Y-aksevektor. Vi vil placere kurven ovenpå datapunkterne i det eksisterende plot, så markér Placér i eksisterende plot og afmarkér Placér i nyt plot under Kurvens placering. Klik til sidst på O.k. for at oprette kurven. Luk datahåndteringen for at kigge på den tilpassede linje:

Tilpasset linje Tilpasset linje

En procedure som ligner den du netop fulgte lader dig oprette og plotte uddata fra en hvilken som helst type af plugin-objekt. Der er dog en genvej til at oprette plugin for tilpasning. Ved at højreklikke på et plot vises den sammenhængsafhængige menu, som indeholder undermenuen Tilpas.... Ved at vælge en kurve i undermenuen, vises dialogen Tilpas funktion med standard X- og Y-vektorer. Efter pluginnet for indstilling er valgt, skabes plugin-objektet, kurven fra pluginnets uddata og kurven placeres i eksisterende plot ved at klikke på knappen O.k.

Lad os nu tage et kig på begivenheder. Begivenhedsobjekter overvåger ofte andre vektorer eller skalarer og udfører angivne handlinger når visse betingelser som berører disse vektorer eller skalarer er sande. Klik på Begivenhedsovervågning... i afsnittet Ny i datahåndteringen for at oprette en ny begivenhed:

Begivenhedsovervågning Begivenhedsovervågning

Antag at pitch-gyroets data opdateres i realtid, og at vi vil blive underrettede så snart de korrigerede pitch-gyroværdier havner udenfor området `[-0,60, -0,40]`. For at indstill begivenheden på denne måde, indskrives følgende i tekstfeltet Udtryk:

`[C4-cleaned_pitch-sv]>(-0.40) | [C4-cleaned_pitch-sv]<(-0.60)`

Bemærk at alt som skrives ind som et udtryk skal være et Boolesk udtryk. Dette bestemte udtryk evalueres som sandt så snart en af ulighederne er sande. Vælg både Log som og Meddel, og skriv din e-mail-adresse til højre for afkrydsningsboksen Meddel. Klik på O.k., så oprettes begivenheden.

Vælg nu Fejlsøgning i Kst... i menuen Hjælp. Klik på fanebladet Log for at vise fejlsøgningsloggen. Hvis begivenheden er indstillet rigtigt, vil du se advarsler som angiver de X-værdier som begivenheden aktiveredes for. Kontrollér at værdierne groft set stemmer overens med dem du kunne vente ved at kigge på plottet:

Fejlsøgningslog Fejlsøgningslog

Hvis pitch-gyro-ata opdateres i realtid, vil begivenhedsovervågningen også blive aktiveret for hver ny data når det behøves.

Når du er færdig, kan du afslutte &kst;.

## Konklusion

Dette afslutter gennemgangen af &kst;. Forhåbentlig har du fået tilstrækkeligt med viden til at kunne bruge &kst; bekvemt. Husk at gennemgangen ikke dækker alle funktioner i &kst;. Der er stadigvæk meget at udforske og eksperimentere med. Resten af håndbogen er en omfattande guide til begreber som strækker sig fra grundlæggende vindueslayout til at oprette egne plugin og læsere af datakilder. Du opmuntres til at bruge &kst; på interessante og opfindsomme måder: du vil formodentlig komme til at mærke at det ikke kun opfylder, men går ud over dine behov og krav.