Aceasta este comanda funjoin care poate fi rulată în furnizorul de găzduire gratuit OnWorks folosind una dintre multiplele noastre stații de lucru online gratuite, cum ar fi Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS
PROGRAM:
NUME
funjoin - unește două sau mai multe tabele binare FITS pe coloanele specificate
REZUMAT
funjoin [comutatoare] ...
OPŢIUNI
-a cols # coloane de activat în toate fișierele
-a1 cols ... un cols # coloane de activat în fiecare fișier
-b 'c1:bvl,c2:bv2' # valori necompletate pentru coloanele comune din toate fișierele
-bn 'c1:bv1,c2:bv2' # valori necompletate pentru coloanele din anumite fișiere
-j col # coloană pentru a se alătura în toate fișierele
-j1 col ... jn col # coloană pentru a se alătura în fiecare fișier
-m min # min se potrivește pentru a scoate un rând
-M max # max se potrivește pentru a scoate un rând
-s # adaugă coloana de stare „jfiles”.
-S col # adaugă col ca coloană de stare
-t tol # toleranță pentru unirea coloanelor numerice [doar 2 fișiere]
DESCRIERE
funjoin unește rânduri din două sau mai multe (până la 32) fișiere FITS Binary Table, pe baza
valorile coloanelor de unire specificate în fiecare fișier. NB: coloanele de unire trebuie să aibă un index
fișier asociat cu acesta. Aceste fișiere sunt generate folosind funindex programul.
Primul argument al programului specifică primul tabel FITS de intrare sau fișierul eveniment brut.
Dacă este specificat „stdin”, datele sunt citite de la intrarea standard. Argumentele ulterioare
specificați fișiere de evenimente și tabele suplimentare pentru a vă alătura. Ultimul argument este ieșirea FITS
fișier.
NB: Faceți nu utilizați Funtools Bracket Notation pentru a specifica extensiile FITS și filtrele de rând când
rulați funjoin sau veți obține rezultate greșite. Rândurile sunt accesate și unite folosind
indexați direct fișierele, iar acest lucru ocolește toate filtrele.
Coloanele de îmbinare sunt specificate folosind -j cu comutator (care specifică un nume de coloană pentru
utilizați pentru toate fișierele) sau cu -j1 col1, -j2 col2, ... -jn coln comutatoare (care specifică a
numele coloanei de utilizat pentru fiecare fișier). Trebuie specificată o coloană de îmbinare pentru fiecare fișier. Dacă ambele
-j cu și -jn coln sunt specificate pentru un fișier dat, apoi acesta din urmă este utilizat. Uniți coloane
trebuie să fie fie de tip șir, fie de tip numeric; este ilegal să amestecați numere și șir
coloane dintr-o îmbinare dată. De exemplu, pentru a uni trei fișiere folosind aceeași coloană cheie pentru
fiecare fișier, utilizați:
funjoin -j key in1.se potriveste in2.se potriveste in3.se potriveste.se potriveste
O cheie diferită poate fi specificată pentru al treilea fișier în acest fel:
funjoin -j tasta -j3 otherkey in1.se potriveste cu 2.se potriveste cu 3.se potriveste pe out.se potriveste
-a "cols" comutator (și -a1 "col1", -a2 "cols2" omologii) pot fi folosite pentru a specifica
coloane de activat (adică scrieți în fișierul de ieșire) pentru fiecare fișier de intrare. Implicit, toate
sunt scoase coloane.
Dacă două sau mai multe coloane din fișiere separate au același nume, a doua (și următoarele)
coloanele sunt redenumite pentru a avea un caracter de subliniere și o valoare numerică.
-m minute și -M max comutatoarele specifică numărul minim și maxim de îmbinări necesare pentru
scrie un rând. Minimul implicit este 0 îmbinări (adică toate rândurile sunt scrise) și
Maximul implicit este 63 (numărul maxim de alături posibile cu o limită de 32 de intrări
dosare). De exemplu, pentru a scrie doar acele rânduri în care exact două fișiere au coloane
acel meci (adică o alăturare):
funjoin -j tasta -m 1 -M 1 in1.se potriveste in2.se potriveste in3.se potriveste ... out.fits
Un anumit rând poate avea numărul necesar de îmbinări fără ca toate fișierele să fie unite
(de exemplu, trei fișiere sunt conectate, dar numai două au o valoare dată a cheii de unire). In acest
În caz, toate coloanele fișierului neunit sunt scrise, implicit, folosind spații libere
(zerouri sau NULL). The -b c1:bv1,c2:bv2 și -b1 'c1:bv1,c2:bv2' -b2 'c1:bv1,c2 - bv2'...
comutatoarele pot fi folosite pentru a seta valoarea goală pentru coloanele comune tuturor fișierelor și/sau coloanelor
într-un fișier specificat, respectiv. Fiecare șir de valori gol conține o listă separată prin virgulă
de specificatorii coloană:blank_val. Pentru valorile în virgulă mobilă (single sau duble), un caz-
valoarea șirului insensibil a „nan” înseamnă că ar trebui utilizat IEEE NaN (nu-un număr).
Astfel, de exemplu:
funjoin -b "AKEY:???" -b1 "A:-1" -b3 "G:NaN,E:-1,F:-100"...
înseamnă că o coloană AKEY neunită în orice fișier va conține șirul „???”, cel care nu este
unită O coloană a fișierului 1 va conține o valoare de -1, coloana G neunită a fișierului 3
va conține NaN IEEE, în timp ce coloanele E și F neunite ale aceluiași fișier vor conține
valorile -1 și respectiv -100. Desigur, acolo unde sunt valorile goale comune și specifice
specificată pentru aceeași coloană, este utilizată valoarea necompletată specifică.
Pentru a distinge ce fișiere sunt componente non-blank ale unui rând dat, -s (de stare) comutator
poate fi folosit pentru a adăuga o coloană cu masca de biți numită „JFILES” la fișierul de ieșire. În această coloană, a
bit este setat pentru fiecare fișier neblank care compune rândul dat, cu bitul 0 corespunde
primul fișier, bit 1 la al doilea fișier și așa mai departe. Numele fișierelor în sine sunt stocate în
antetul FITS ca parametri numiti JFILE1, JFILE2 etc -S cu comutatorul vă permite
schimbați numele coloanei de stare din „JFILES” implicit.
O îmbinare între rânduri este produsul cartezian al tuturor rândurilor dintr-un fișier având o îmbinare dată
valoarea coloanei cu toate rândurile dintr-un al doilea fișier având aceeași valoare pentru coloana de unire și
curând. Astfel, dacă fișierul 1 are 2 rânduri cu valoarea coloanei de unire 100, fișierul 2 are 3 rânduri cu
aceeași valoare și fișierul3 are 4 rânduri, apoi îmbinarea are ca rezultat 2*3*4=24 rânduri.
Algoritmul de unire procesează direct fișierul index asociat cu coloana de unire a
fiecare dosar. Cea mai mică valoare dintre toate coloanele curente este selectată ca bază și aceasta
value este folosit pentru a uni coloane cu valori egale în celelalte fișiere. În acest fel, indexul
fișierele sunt parcurse exact o dată.
-t tol comutatorul specifică o valoare de toleranță pentru coloanele numerice. În prezent, a
valoarea de toleranță poate uni doar două fișiere simultan. (Un algoritm complet diferit este
este necesar să se alăture mai mult de două fișiere folosind o toleranță, ceva ce am putea lua în considerare
implementat în viitor.)
Următorul exemplu arată multe dintre caracteristicile funjoin. Fișierele de intrare t1.fits,
t2.fits și t3.fits conțin următoarele coloane:
[sh] fundisp t1.fits
CHEIE AB
----------- ------ ------ ------
aaa 0 0 1
bbb 1 3 4
ccc 2 6 7
ddd 3 9 10
eee 4 12 13
fff 5 15 16
ggg 6 18 19
hhh 7 21 22
fundisp t2.se potriveste
CD-ul KEY KEY
----------- ------ ------ ------
iii 8 24 25
ggg 6 18 19
eee 4 12 13
ccc 2 6 7
aaa 0 0 1
fundisp t3.se potriveste
AKEY KEY EFG ------------ ------ -------- --------
-----------
ggg 6 18 19 100.10
jjj 9 27 28 200.20
aaa 0 0 1 300.30
ddd 3 9 10 400.40
Având în vedere aceste fișiere de intrare, următoarea comandă funjoin:
funjoin -s -a1 "-B" -a2 "-D" -a3 "-E" -b \
"O CHEIE:???" -b1 „AKEY:XXX,A:255” -b3 „G:NaN,E:-1,F:-100” \
-j cheie t1.se potriveste cu t2.se potriveste cu t3.se potriveste pe foo.se potriveste
va uni fișierele de pe coloana CHEIE, producând toate coloanele, cu excepția B (în t1.fits), D (în
t2.fits) și E (în t3.fits) și setarea valorilor goale pentru AKEY (la nivel global, dar suprascris
pentru t1.fits) și A (în fișierul 1) și G, E și F (în fișierul 3). O coloană JFILES va fi
ieșire pentru a marca ce fișiere au fost utilizate în fiecare rând:
AKEY KEY A AKEY_2 KEY_2 C AKEY_3 KEY_3 FG JFILES
------------ ------ ------ ------------ ------ ------ -- ---------- ------ -------- ----------- --------
aaa 0 0 aaa 0 0 aaa 0 1 300.30 7
bbb 1 3 ??? 0 0 ??? 0 -100 nan 1
ccc 2 6 ccc 2 6 ??? 0 -100 nan 3
ddd 3 9 ??? 0 0 ddd 3 10 400.40 5
eee 4 12 eee 4 12 ??? 0 -100 nan 3
fff 5 15 ??? 0 0 ??? 0 -100 nan 1
ggg 6 18 ggg 6 18 ggg 6 19 100.10 7
hhh 7 21 ??? 0 0 ??? 0 -100 nan 1
XXX 0 255 iii 8 24 ??? 0 -100 nan 2
XXX 0 255 ??? 0 0 jjj 9 28 200.20 4
Utilizați funjoin online folosind serviciile onworks.net