นี่คือคำสั่ง funjoin ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้เวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
funjoin - เข้าร่วมตารางไบนารี FITS สองตารางขึ้นไปในคอลัมน์ที่ระบุ
เรื่องย่อ
ร่วมสนุก [สวิตช์] ...
OPTIONS
-a cols # คอลัมน์เพื่อเปิดใช้งานในทุกไฟล์
-a1 cols ... an cols # คอลัมน์เพื่อเปิดใช้งานในแต่ละไฟล์
-b 'c1:bvl,c2:bv2' # ค่าว่างสำหรับคอลัมน์ทั่วไปในทุกไฟล์
-bn 'c1:bv1,c2:bv2' # ค่าว่างสำหรับคอลัมน์ในไฟล์เฉพาะ
-j col # คอลัมน์เพื่อเข้าร่วมในไฟล์ทั้งหมด
-j1 col ... jn col # คอลัมน์ที่จะเข้าร่วมในแต่ละไฟล์
-m นาที # min ตรงกันเพื่อส่งออกแถว
-M max # max ตรงกันเพื่อส่งออกแถว
-s # เพิ่มคอลัมน์สถานะ 'jfiles'
-S col # เพิ่ม col เป็นคอลัมน์สถานะ
-t tol # ความอดทนสำหรับการเข้าร่วม cols ตัวเลข [2 ไฟล์เท่านั้น]
DESCRIPTION
ร่วมสนุก รวมแถวจากไฟล์ FITS Binary Table สองไฟล์ขึ้นไป (สูงสุด 32) ตามไฟล์
ค่าของคอลัมน์การรวมที่ระบุในแต่ละไฟล์ NB: คอลัมน์การรวมต้องมี index
ไฟล์ที่เกี่ยวข้องกับมัน ไฟล์เหล่านี้สร้างขึ้นโดยใช้ ดัชนีฟัน โครงการ
อาร์กิวเมนต์แรกของโปรแกรมระบุอินพุตตาราง FITS แรกหรือไฟล์เหตุการณ์ดิบ
หากระบุ "stdin" ข้อมูลจะถูกอ่านจากอินพุตมาตรฐาน ข้อโต้แย้งที่ตามมา
ระบุไฟล์และตารางเหตุการณ์เพิ่มเติมที่จะเข้าร่วม อาร์กิวเมนต์สุดท้ายคือผลลัพธ์ FITS
ไฟล์
หมายเหตุ: ทำ ไม่ ใช้ Funtools Bracket Notation เพื่อระบุส่วนขยาย FITS และตัวกรองแถวเมื่อ
วิ่ง funjoin มิฉะนั้นคุณจะได้รับผลลัพธ์ที่ไม่ถูกต้อง แถวมีการเข้าถึงและเข้าร่วมโดยใช้
ไฟล์ดัชนีโดยตรง และสิ่งนี้จะข้ามการกรองทั้งหมด
คอลัมน์การรวมถูกระบุโดยใช้ -j Col สวิตช์ (ซึ่งระบุชื่อคอลัมน์เป็น
ใช้สำหรับไฟล์ทั้งหมด) หรือกับ -j1 col1, -j2 col2, ... -เจเอ็น คอล์น สวิตช์ (ซึ่งระบุ a
ชื่อคอลัมน์ที่จะใช้สำหรับแต่ละไฟล์) ต้องระบุคอลัมน์การรวมสำหรับแต่ละไฟล์ ถ้าทั้งสองอย่าง
-j Col และ -เจเอ็น คอล์น ระบุไว้สำหรับไฟล์ที่กำหนด จากนั้นจะใช้ไฟล์หลัง เข้าร่วมคอลัมน์
ต้องเป็นประเภทสตริงหรือประเภทตัวเลข การผสมตัวเลขและสตริงเป็นสิ่งผิดกฎหมาย
คอลัมน์ในการเข้าร่วมที่กำหนด ตัวอย่างเช่น การรวมสามไฟล์โดยใช้คอลัมน์คีย์เดียวกันสำหรับ
แต่ละไฟล์ใช้:
funjoin -j คีย์ in1.fits in2.fits in3.fits out.fits
สามารถระบุคีย์อื่นสำหรับไฟล์ที่สามได้ดังนี้:
funjoin -j คีย์ -j3 otherkey in1.fits in2.fits in3.fits out.fits
พื้นที่ -a "โคลส์" สวิตช์ (และ .A1 "โคล1", .A2 "โคลส์2" คู่กัน) สามารถใช้ระบุ
คอลัมน์ที่จะเปิดใช้งาน (เช่น เขียนไปยังไฟล์เอาต์พุต) สำหรับแต่ละไฟล์อินพุต โดยค่าเริ่มต้น all
คอลัมน์เป็นเอาต์พุต
หากสองคอลัมน์ขึ้นไปจากไฟล์แยกกันมีชื่อเหมือนกัน คอลัมน์ที่สอง (และต่อมา)
คอลัมน์จะถูกเปลี่ยนชื่อให้มีขีดล่างและค่าตัวเลขต่อท้าย
พื้นที่ -m นาที และ -M แม็กซ์ สวิตช์ระบุจำนวนการเชื่อมต่อขั้นต่ำและสูงสุดที่ต้องการ
เขียนออกมาเป็นแถว ค่าต่ำสุดเริ่มต้นคือ 0 การรวม (เช่น แถวทั้งหมดถูกเขียนออกมา) และ
ค่าเริ่มต้นสูงสุดคือ 63 (จำนวนสูงสุดของการรวมที่เป็นไปได้โดยมีขีดจำกัด 32 อินพุต
ไฟล์). ตัวอย่างเช่น การเขียนเฉพาะแถวที่มีสองไฟล์เท่านั้นที่มีคอลัมน์
ที่ตรงกัน (เช่นหนึ่งเข้าร่วม):
funjoin -j คีย์ -m 1 -M 1 in1.fits in2.fits in3.fits ... out.fits
แถวที่กำหนดสามารถมีจำนวนการรวมที่จำเป็นโดยไม่ต้องรวมไฟล์ทั้งหมด
(เช่น ไฟล์สามไฟล์ถูกรวมเข้าด้วยกัน แต่มีเพียงสองไฟล์เท่านั้นที่มีค่าคีย์การเข้าร่วมที่กำหนด) ในเรื่องนี้
กรณี คอลัมน์ทั้งหมดของไฟล์ที่ไม่เข้าร่วมจะถูกเขียนตามค่าเริ่มต้นโดยใช้ช่องว่าง
(ศูนย์หรือ NULL) NS -b c1:bv1,c2:bv2 และ -b1 'c1:bv1,c2:bv2' -b2 'c1:bv1,c2 - bv2' ...
สามารถใช้สวิตช์เพื่อตั้งค่าว่างสำหรับคอลัมน์ทั่วไปของไฟล์และ/หรือคอลัมน์ทั้งหมดได้
ในไฟล์ที่ระบุตามลำดับ สตริงค่าว่างแต่ละรายการมีรายการคั่นด้วยเครื่องหมายจุลภาค
ของตัวระบุคอลัมน์:blank_val สำหรับค่าทศนิยม (เดี่ยวหรือคู่) กรณี-
ค่าสตริงที่ไม่ละเอียดอ่อนของ "nan" หมายความว่าควรใช้ IEEE NaN (ไม่ใช่ตัวเลข)
ตัวอย่างเช่น:
funjoin -b "ใช่:???" -b1 "A:-1" -b3 "G:NaN,E:-1,F:-100" ...
หมายความว่าคอลัมน์ AKEY ที่ไม่เข้าร่วมในไฟล์ใด ๆ จะมีสตริง "???" ที่ไม่ใช่
เข้าร่วม คอลัมน์ของไฟล์ 1 จะมีค่า -1 คอลัมน์ G ที่ไม่เข้าร่วมของไฟล์ 3
จะมี IEEE NaNs ในขณะที่คอลัมน์ E และ F ที่ไม่เข้าร่วมของไฟล์เดียวกันจะมี
ค่า -1 และ -100 ตามลำดับ แน่นอนว่าค่าว่างทั่วไปและค่าเฉพาะคือ
ระบุสำหรับคอลัมน์เดียวกัน ใช้ค่าว่างเฉพาะ
ในการแยกแยะว่าไฟล์ใดเป็นส่วนประกอบที่ไม่ว่างของแถวที่กำหนด -s (สถานะ) สวิตช์
สามารถใช้เพื่อเพิ่มคอลัมน์ bitmask ชื่อ "JFILES" ลงในไฟล์เอาต์พุต ในคอลัมน์นี้ a
บิตถูกตั้งค่าสำหรับไฟล์ที่ไม่ว่างเปล่าแต่ละไฟล์ที่เขียนแถวที่กำหนดโดยบิต 0 สอดคล้องกับ
ไฟล์แรก บิต 1 ไปยังไฟล์ที่สอง เป็นต้น ชื่อไฟล์เองถูกเก็บไว้ใน
ส่วนหัว FITS เป็นพารามิเตอร์ชื่อ JFILE1, JFILE2 เป็นต้น The -S Col สวิตช์ช่วยให้คุณ
เปลี่ยนชื่อคอลัมน์สถานะจากค่าเริ่มต้น "JFILES"
การรวมระหว่างแถวเป็นผลคูณคาร์ทีเซียนของทุกแถวในไฟล์เดียวที่มีการเข้าร่วมที่กำหนด
ค่าของคอลัมน์ที่มีแถวทั้งหมดในไฟล์ที่สองที่มีค่าเท่ากันสำหรับคอลัมน์ที่เข้าร่วมและ
เร็ว ๆ นี้. ดังนั้น หาก file1 มี 2 แถวโดยมีค่าคอลัมน์รวม 100, file2 จะมี 3 แถวด้วยเครื่องหมาย
ค่าเดียวกัน และ file3 มี 4 แถว ดังนั้นการรวมผลลัพธ์ใน 2*3*4=24 แถวจะถูกส่งออก
อัลกอริทึมการเข้าร่วมจะประมวลผลไฟล์ดัชนีที่เกี่ยวข้องกับคอลัมน์การรวมของ .โดยตรง
แต่ละไฟล์ ค่าที่น้อยที่สุดของคอลัมน์ปัจจุบันทั้งหมดถูกเลือกเป็นฐาน และค่านี้
ค่าถูกใช้เพื่อรวมคอลัมน์ที่มีมูลค่าเท่ากันในไฟล์อื่น ด้วยวิธีนี้ ดัชนี
ไฟล์จะถูกสำรวจเพียงครั้งเดียว
พื้นที่ -t ดัน สวิตช์ระบุค่าความคลาดเคลื่อนสำหรับคอลัมน์ตัวเลข ปัจจุบัน a
ค่าความคลาดเคลื่อนสามารถเข้าร่วมได้ครั้งละสองไฟล์เท่านั้น (อัลกอริทึมที่แตกต่างอย่างสิ้นเชิงคือ
จำเป็นต้องรวมไฟล์มากกว่าสองไฟล์โดยใช้ความอดทน สิ่งที่เราควรพิจารณา
นำไปปฏิบัติได้ในอนาคต)
ตัวอย่างต่อไปนี้แสดงคุณลักษณะหลายอย่างของ funjoin ไฟล์อินพุต t1.fits,
t2.fits และ t3.fits ประกอบด้วยคอลัมน์ต่อไปนี้:
[sh] กองทุน t1.fits
AKEY KEY AB
-
อ่าา 0 0 1
บีบี 1 3 4
สำเนาลับ 2 6 7
วว 3 9 10
อี 4 12 13
ff 5 15 16
ggg 6 18 19
ฮะ 7 21 22
กองทุนรวม t2.fits
AKEY KEY ซีดี
-
iii 8 24 25
ggg 6 18 19
อี 4 12 13
สำเนาลับ 2 6 7
อ่าา 0 0 1
กองทุนรวม t3.fits
คีย์ EFG ------------ ------ -------- --------
-----------
ggg 6 18 19 100.10
จจ 9 27 28 200.20
aaa 0 0 1 300.30
วว 3 9 10 400.40
จากไฟล์อินพุตเหล่านี้ คำสั่ง funjoin ต่อไปนี้:
funjoin -s -a1 "-B" -a2 "-D" -a3 "-E" -b \
"กุญแจ:???" -b1 "AKEY:XXX,A:255" -b3 "G:NaN,E:-1,F:-100" \
-j คีย์ t1.fits t2.fits t3.fits foo.fits
จะรวมไฟล์ในคอลัมน์ KEY แสดงผลคอลัมน์ทั้งหมดยกเว้น B (ใน t1.fits), D (ใน
t2.fits) และ E (ใน t3.fits) และการตั้งค่าว่างสำหรับ AKEY (ทั่วโลก แต่ถูกแทนที่
สำหรับ t1.fits) และ A (ในไฟล์ 1) และ G, E และ F (ในไฟล์ 3) คอลัมน์ JFILES จะเป็น
ส่งออกไปยังแฟล็กไฟล์ที่ใช้ในแต่ละแถว:
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
บีบีบี 1 3 ??? 0 0 ??? 0 -100 น่าน 1
ซีซี 2 6 ซีซี 2 6 ??? 0 -100 น่าน 3
วว 3 9 ??? 0 0 ddd 3 10 400.40 5
อี 4 12 อีอี 4 12 ??? 0 -100 น่าน 3
ff 5 15 ??? 0 0 ??? 0 -100 น่าน 1
อ๊าก 6 18 อ๊าก 6 18 อ๊าก 6 19 100.10 7
ฮะ 7 21 ??? 0 0 ??? 0 -100 น่าน 1
XXX 0 255 iii 8 24 ??? 0 -100 น่าน 2
XXX 0 255 ??? 0 0 จจ 9 28 200.20 4
ใช้ funjoin ออนไลน์โดยใช้บริการ onworks.net