fundisp - ออนไลน์ในคลาวด์

นี่คือคำสั่ง fundisp ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้หนึ่งในเวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

โครงการ:

ชื่อ


fundisp - แสดงข้อมูลในไฟล์ข้อมูล Funtools

เรื่องย่อ


กองทุน [-f รูปแบบ] [-l] [-n] [-T] [คอลัมน์⎪bitpix=n]

OPTIONS


-f # สตริงรูปแบบสำหรับ display
-l # แสดงรูปภาพเป็นรายการที่มีคอลัมน์ X, Y, VAL
-n # อย่าส่งออกส่วนหัว
-F [c] # ใช้อักขระที่ระบุเป็นตัวคั่นคอลัมน์ (def: space)
-T # เอาต์พุตในรูปแบบ rdb/starbase (ตัวคั่นแท็บ)

DESCRIPTION


กองทุน แสดงข้อมูลในส่วนต่อขยาย FITS และ/หรือรูปภาพที่ระบุของ FITS
ไฟล์หรือในส่วนของอาร์เรย์ที่ไม่ FITS หรือไฟล์เหตุการณ์ดิบ

อาร์กิวเมนต์แรกของโปรแกรมระบุ FITS อิมเมจอินพุต อาร์เรย์ หรือไฟล์เหตุการณ์ดิบ
เพื่อแสดง หากระบุ "stdin" ข้อมูลจะถูกอ่านจากอินพุตมาตรฐาน ใช้ Funtools
เครื่องหมายวงเล็บเพื่อระบุส่วนขยาย ส่วนของรูปภาพ และฟิลเตอร์ของ FITS

หากข้อมูลที่แสดงเป็นคอลัมน์ (ทั้งในตารางไบนารี FITS หรือเหตุการณ์ดิบ
ไฟล์) แต่ละแถวจะแสดงรายการ สามารถเพิ่มตัวกรองได้โดยใช้เครื่องหมายวงเล็บ ดังนั้น:

[sh] fundisp "test.ev[เวลา-(int) เวลา>.15]"
XY PHA PI TIME DX DY
-------- -------- -------- ---------------------- ---------------- ---- ------ ----------
10 8 10 8 17.1600 8.50 10.50
9 9 9 9 17.1600 9.50 9.50
10 9 10 9 18.1600 9.50 10.50
10 9 10 9 18.1700 9.50 10.50
8 10 8 10 17.1600 10.50 8.50
9 10 9 10 18.1600 10.50 9.50
9 10 9 10 18.1700 10.50 9.50
10 10 10 10 19.1600 10.50 10.50
10 10 10 10 19.1700 10.50 10.50
10 10 10 10 19.1800 10.50 10.50

[หมายเหตุ: ไฟล์ทดสอบตารางไบนารีของ FITS test.ev เช่นเดียวกับการทดสอบอิมเมจ FITS คือ
อยู่ในไดเร็กทอรี funtools funtest]

เมื่อมีการแสดงตารางโดยใช้ กองทุนสามารถใช้อาร์กิวเมนต์ทางเลือกที่สองเพื่อ
ระบุคอลัมน์ที่จะแสดง ตัวอย่างเช่น:

[sh] fundisp "test.ev[time-(int)time>=.99]" "xy เวลา"
XY TIME
-------- -------- -----------
5 - 6
4 - 5
-1 0 154.99000000
-2 1 168.99000000
-3 2 183.99000000
-4 3 199.99000000
-5 4 216.99000000
-6 5 234.99000000
-7 6 253.99000000

คอลัมน์พิเศษ $ภูมิภาค สามารถระบุให้แสดงรหัสภูมิภาคของแต่ละแถวได้:

[sh $] fundisp "test.ev[time-(int)time>=.99&&annulus(0 0 0 10 n=3)]" 'xy เวลา $REGION'
เขตเวลา XY
-
5-6 40.99000000 3
4-5 59.99000000 2
-1 0 154.99000000 1
-2 1 168.99000000 1
-3 2 183.99000000 2
-4 3 199.99000000 2
-5 4 216.99000000 2
-6 5 234.99000000 3
-7 6 253.99000000 3

เฉพาะแถวที่มีเวลาเศษส่วนที่เหมาะสมและตำแหน่งอยู่ใน
สามปีจะปรากฏขึ้น

คอลัมน์สามารถแยกออกจากการแสดงผลได้โดยใช้เครื่องหมายลบก่อนคอลัมน์:

[sh $] fundisp "test.ev[time-(int)time>=.99]" "-time"
XY PHA PI DX DY
-------- -------- -------- ---------- ----------- ----- ------
5 -6 5 -6 5.50 -6.50
4 -5 4 -5 4.50 -5.50
-1 0 -1 0 -1.50 0.50
-2 1 -2 1 -2.50 1.50
-3 2 -3 2 -3.50 2.50
-4 3 -4 3 -4.50 3.50
-5 4 -5 4 -5.50 4.50
-6 5 -6 5 -6.50 5.50
-7 6 -7 6 -7.50 6.50

คอลัมน์ทั้งหมดยกเว้นคอลัมน์เวลาจะปรากฏขึ้น

คอลัมน์พิเศษ $N สามารถระบุให้แสดงค่าลำดับของแต่ละแถวได้ ดังนั้น,
ดำเนินการต่อตัวอย่างก่อนหน้า:

fundisp "test.ev[time-(int)time>=.99]" '-time $n'
XY PHA PI DX DY N
-------- -------- -------- ---------- ----------- ------ ----- ----------
5 -6 5 -6 5.50 -6.50 337
4 -5 4 -5 4.50 -5.50 356
-1 0 -1 0 -1.50 0.50 451
-2 1 -2 1 -2.50 1.50 465
-3 2 -3 2 -3.50 2.50 480
-4 3 -4 3 -4.50 3.50 496
-5 4 -5 4 -5.50 4.50 513
-6 5 -6 5 -6.50 5.50 531
-7 6 -7 6 -7.50 6.50 550

โปรดทราบว่าข้อกำหนดของคอลัมน์อยู่ในเครื่องหมายคำพูดเดียวเพื่อป้องกัน '$n' ตั้งแต่เริ่มต้น
ขยายโดยเปลือก

โดยทั่วไป กฎสำหรับการเปิดใช้งานและปิดใช้งานคอลัมน์คือ:

· หากระบุเฉพาะคอลัมน์ที่ยกเว้น คอลัมน์ทั้งหมดยกเว้นคอลัมน์ที่แยกจะ
ถูกเปิดใช้งาน

· หากระบุเฉพาะคอลัมน์ คอลัมน์ที่ระบุเท่านั้นที่เปิดใช้งาน

· หากมีการระบุคอลัมน์ที่รวมและไม่รวมไว้ ให้ทั้งหมดยกเว้นยกเว้น
คอลัมน์จะเปิดใช้งาน กรณีสุดท้ายนี้มีความคลุมเครือและกฎเกณฑ์เป็นไปโดยพลการ

นอกจากการระบุชื่อคอลัมน์อย่างชัดเจนแล้ว สัญลักษณ์พิเศษ + และ - เป็นไปได้
ใช้เพื่อเปิดใช้งานและปิดใช้งาน ทั้งหมด คอลัมน์ สิ่งนี้มีประโยชน์หากคุณต้องการเปิดใช้งาน
คอลัมน์ $REGION พร้อมกับคอลัมน์อื่นๆ ทั้งหมด ตามกฎแล้ว ไวยากรณ์ "$REGION"
เปิดใช้งานเฉพาะคอลัมน์ภูมิภาคและปิดใช้งานส่วนที่เหลือ ใช้ "+ $REGION" เพื่อเปิดใช้งาน
คอลัมน์ทั้งหมดและคอลัมน์ภูมิภาค

หากข้อมูลที่แสดงเป็นข้อมูลภาพ (ไม่ว่าจะเป็นภาพหลัก FITS ภาพ FITS
นามสกุล หรือไฟล์อาร์เรย์) การแสดงผลพิกเซล mxn ถูกสร้างขึ้น โดยที่ m และ n คือ
ขนาดของภาพ ตามค่าเริ่มต้น ค่าพิกเซลจะแสดงโดยใช้ประเภทข้อมูลเดียวกัน
เช่นเดียวกับในไฟล์. อย่างไรก็ตาม สำหรับข้อมูลจำนวนเต็มโดยที่พารามิเตอร์ส่วนหัว BSCALE และ BZERO เป็น
ปัจจุบันข้อมูลจะแสดงเป็นลอย ไม่ว่าในกรณีใด ชนิดข้อมูลที่แสดงอาจเป็น
แทนที่โดยใช้อาร์กิวเมนต์ที่สองที่เป็นทางเลือกของแบบฟอร์ม:

bitpix=n

โดยที่ n คือ 8,16,32,-32,-64 สำหรับถ่านที่ไม่ได้ลงชื่อ, short, int, float และ double ตามลำดับ

แน่นอนวิ่ง กองทุน บนอะไรก็ได้ยกเว้นภาพที่เล็กที่สุดมักจะส่งผลให้มีการแสดงผล
ซึ่งขนาดทำให้อ่านไม่ออก ดังนั้น เราสามารถใช้เครื่องหมายวงเล็บ (ดูด้านล่าง) ถึง
ใช้ส่วนและ/หรือบล็อกกับรูปภาพก่อนสร้างการแสดงผล ตัวอย่างเช่น:

[sh] fundisp "test.fits[2:6,2:7]" bitpix=-32
2 3 4 5 6
---------- ---------- ---------- ---------- ---------- ----------
2: 3.00 4.00 5.00 6.00 7.00 XNUMX
3: 4.00 5.00 6.00 7.00 8.00 XNUMX
4: 5.00 6.00 7.00 8.00 9.00 XNUMX
5: 6.00 7.00 8.00 9.00 10.00 XNUMX
6: 7.00 8.00 9.00 10.00 11.00 XNUMX
7: 8.00 9.00 10.00 11.00 12.00 XNUMX

โปรดทราบว่าคุณสามารถแสดงตารางไบนารี FITS เป็นรูปภาพได้ง่ายๆ โดยส่ง
ตารางผ่าน ภาพสนุก ครั้งแรก:

[sh] ./funimage test.ev stdout ⎪ fundisp "stdin[2:6,2:7]" bitpix=8
2 3 4 5 6
-
2: 3 4 5 6 7 XNUMX
3: 4 5 6 7 8 XNUMX
4: 5 6 7 8 9 XNUMX
5: 6 7 8 9 10 XNUMX
6: 7 8 9 10 11 XNUMX
7: 8 9 10 11 12 XNUMX

ถ้า -l (รายการ) ใช้สวิตช์ จากนั้นรูปภาพจะแสดงเป็นรายการที่มี
คอลัมน์: X, Y, VAL ตัวอย่างเช่น:

fundisp -l "test1.fits[2:6,2:7]" bitpix=-32
XY วาล
---------- ---------- ----------------
2 2 6.00
3 2 1.00
4 2 1.00
5 2 1.00
6 2 1.00
2 3 1.00
3 3 5.00
4 3 1.00
5 3 1.00
6 3 1.00
2 4 1.00
3 4 1.00
4 4 4.00
5 4 1.00
6 4 1.00
2 5 1.00
3 5 1.00
4 5 1.00
5 5 3.00
6 5 1.00
2 6 1.00
3 6 1.00
4 6 1.00
5 6 1.00
6 6 2.00
2 7 1.00
3 7 1.00
4 7 1.00
5 7 1.00
6 7 1.00

ถ้า -n ใช้สวิตช์ (nohead) ดังนั้นจึงไม่มีเอาต์พุตส่วนหัวสำหรับตาราง สิ่งนี้มีประโยชน์
ตัวอย่างเช่น เมื่อเอาต์พุต fundisp ถูกส่งไปยัง gnuplot

พื้นที่ กองทุน โปรแกรมใช้ชุดรูปแบบการแสดงผลเริ่มต้น:

ประเภทข้อมูล รูปแบบ TFORM
-
ดับเบิ้ลดี "%21.8f"
ลอย E "%11.2f"
int เจ "%10d"
สั้น ฉัน "%8d"
ไบต์ B "%6d"
สตริง A "%12.12s"
บิต X "%8x"
ตรรกะ L "%1x"

ดังนั้น การแสดงค่าเริ่มต้นของ 1 double และ 2 shorts จะให้:

[sh] fundisp snr.ev "เวลา xy"

ไทม์ XY
--------------------- -------- -------- --------
79494546.56818075 546 201
79488769.94469175 548 201
...

คุณสามารถเปลี่ยนรูปแบบการแสดงสำหรับแต่ละคอลัมน์หรือสำหรับคอลัมน์ทั้งหมดที่กำหนดได้
ชนิดข้อมูลโดยใช้สวิตช์ -f สตริงรูปแบบที่มาพร้อมกับ -f คือช่องว่าง-
รายการที่คั่นด้วยคีย์เวิร์ด=ค่ารูปแบบ ค่าคีย์เวิร์ดอาจเป็นชื่อคอลัมน์ก็ได้
(ในกรณีที่รูปแบบที่เกี่ยวข้องเกี่ยวข้องกับคอลัมน์นั้นเท่านั้น) หรือตาราง FITS TFORM
ตัวระบุ (ในกรณีนี้ รูปแบบเกี่ยวข้องกับคอลัมน์ทั้งหมดที่มีชนิดข้อมูลนั้น) สำหรับ
ตัวอย่าง คุณสามารถเปลี่ยนรูปแบบคู่และแบบสั้นสำหรับคอลัมน์ทั้งหมดดังนี้:

[sh] fundisp -f "D=%22.11f I=%3d" snr.ev "เวลา xy"

ไทม์ XY
-
79494546.56818075478 546 201
79488769.94469174743 548 201
...

อีกวิธีหนึ่ง คุณสามารถเปลี่ยนรูปแบบของเวลาและคอลัมน์ x ได้ดังนี้:

[sh] fundisp -f "เวลา=%22.11fx=%3d" snr.ev "เวลา xy"

ไทม์ XY
---------------------- -----------
79494546.56818075478 546 201
79488769.94469174743 548 201
...

โปรดทราบว่ามีข้อขัดแย้งที่อาจเกิดขึ้นหากคอลัมน์มีชื่อเดียวกับหนึ่งในTFORM
ตัวระบุ ในตัวอย่างข้างต้น คอลัมน์ "X" ในตารางมีชื่อเหมือนกับ
ประเภทข้อมูล X (บิต) เพื่อแก้ไขข้อขัดแย้งนี้ สตริงรูปแบบจะได้รับการประมวลผลเช่นนั้น
ตัวระบุประเภทข้อมูล TFORM จะถูกตรวจสอบก่อน โดยใช้การเปรียบเทียบแบบคำนึงถึงขนาดตัวพิมพ์ ถ้า
ค่ารูปแบบที่ระบุไม่ใช่ค่า TFORM ตัวพิมพ์ใหญ่ ดังนั้นการตรวจสอบตัวพิมพ์เล็กและตัวพิมพ์ใหญ่คือ
ทำในชื่อคอลัมน์ ซึ่งหมายความว่าในตัวอย่างด้านบน "X=%3d" จะหมายถึง
ประเภทข้อมูล X (บิต) ในขณะที่ "x=%3d" จะอ้างถึงคอลัมน์ X:

[sh] fundisp -f "X=%3d" snr.ev "xy"

XY
-
546 201
548 201
...

[sh] fundisp -f "x=%3d" snr.ev "xy"

XY
-----------
546 201
548 201
...

ตามกฎแล้ว ควรระบุชื่อคอลัมน์เป็นตัวพิมพ์เล็กและ TFORM . เสมอ
ชนิดข้อมูลเป็นตัวพิมพ์ใหญ่

พื้นที่ -f [รูปแบบ] จะเปลี่ยนรูปแบบการดำเนินการกองทุนเดียว คุณสามารถใช้
FUN_FORMAT ตัวแปร envronment เพื่อเปลี่ยนรูปแบบสำหรับการเรียกใช้ fundisp ทั้งหมด
รูปแบบของค่าตัวแปรสภาพแวดล้อมนี้เหมือนกับที่ใช้กับ -f
สวิตซ์. ค่าส่วนกลางนี้สามารถแทนที่ได้ในแต่ละกรณีโดยใช้ -f [รูปแบบ]
สวิตซ์.

คำเตือน: โปรดทราบว่าผู้ใช้ต้องรับผิดชอบในการจับคู่รูปแบบ
ระบุชนิดข้อมูลคอลัมน์ได้อย่างถูกต้อง โปรดทราบด้วยว่าเพื่อรักษาภาพ
การจัดตำแหน่งระหว่างชื่อและคอลัมน์ ชื่อคอลัมน์จะถูกตัดทอน (ทางด้านซ้าย) if
ความกว้างของรูปแบบน้อยกว่าความยาวของชื่อ อย่างไรก็ตาม การตัดทอนไม่ได้ดำเนินการ
หากเอาต์พุตอยู่ในรูปแบบ RDB (โดยใช้สวิตช์ -T)

[รองรับสตริงรูปแบบที่เก่ากว่าแต่เลิกใช้งานแล้ว ประกอบด้วยตัวคั่นช่องว่าง
คำสั่งรูปแบบ C สำหรับชนิดข้อมูลทั้งหมด ที่ระบุในลำดับต่อไปนี้:

double float int บิตสตริงไบต์สั้น

ลำดับของรายการนี้ขึ้นอยู่กับสมมติฐานที่คนทั่วไปจะต้องการ
เปลี่ยนรูปแบบโฟลต

หากป้อน "-" แทนคำสั่งรูปแบบสำหรับชนิดข้อมูลที่กำหนด รูปแบบเริ่มต้น
ถูกนำมาใช้. นอกจากนี้ สตริงรูปแบบสามารถสิ้นสุดได้โดยไม่ต้องระบุรูปแบบทั้งหมด และ
ค่าเริ่มต้นจะถูกใช้สำหรับส่วนที่เหลือของรายการ โปรดทราบว่าคุณต้องระบุฟิลด์ขั้นต่ำ
ความกว้าง กล่าวคือ "%6d" และ "%-6d" ถูกกฎหมาย "%d" ไม่ถูกกฎหมาย

โดยใช้ -f [format] คุณสามารถเปลี่ยนรูปแบบ double และ short ได้ดังนี้:

[sh] fundisp -f "22.11f - - 3d" snr.ev "เวลา xy"

ไทม์ XY
-
79494546.56818075478 546 201
79488769.94469174743 548 201
...

หมายเหตุ: รูปแบบนี้เลิกใช้แล้วและจะถูกลบออกในรุ่นต่อๆ ไป]

พื้นที่ -F[ค] สามารถใช้สวิตช์เพื่อระบุตัวคั่นคอลัมน์ (อักขระเดียว) (โดยที่
ค่าเริ่มต้นคือช่องว่าง) โปรดทราบว่าการจัดรูปแบบคอลัมน์จะเพิ่มช่องว่างให้กับ
วางแต่ละคอลัมน์ตามความกว้างที่ต้องการ สิ่งเหล่านี้สามารถลบออกได้ด้วยโปรแกรมเช่น
sed ด้วยต้นทุนในการสร้างคอลัมน์ที่ไม่อยู่ในแนวเดียวกัน ตัวอย่างเช่น:

fundisp -F',' snr.ev'[cir 512 512 .1]'
X, Y, PHA, PI, เวลา, DX, DY
512, 512, 6, 7, 79493997.45854475, 578, 574
512, 512, 8, 9, 79494575.58943175, 579, 573
512, 512, 5, 6, 79493631.03866175, 578, 575
512, 512, 5, 5, 79493290.86521725, 578, 575
512, 512, 8, 9, 79493432.00990875, 579, 573

fundisp -F',' snr.ev'[cir 512 512 .1]' ⎪ sed 's/ *, */,/g'
X, Y, PHA, PI, เวลา, DX, DY
512,512,6,7,79493997.45854475,578,574
512,512,8,9,79494575.58943175,579,573
512,512,5,6,79493631.03866175,578,575
512,512,5,5,79493290.86521725,578,575
512,512,8,9,79493432.00990875,579,573

fundisp -f "x=%3d y=%3d pi=%1d pha=%1d เวลา=%20.11f dx=%3d dy=%3d" -F',' snr.ev'[cir 512
512 .1]' ⎪ sed 's/ *, */,/g'
X,Y,A,I,TIME,DX,DY ---,---,-,-,-------------,---, ---
512,512,6,7,79493997.45854474604,578,574 512,512,8,9,79494575.58943174779,579,573
512,512,5,6,79493631.03866174817,578,575 512,512,5,5,79493290.86521725357,578,575
512,512,8,9,79493432.00990875065,579,573

ถ้า -T ใช้สวิตช์ (ตาราง rdb) เอาต์พุตจะสอดคล้องกับฐานข้อมูล starbase/rdb
รูปแบบ: แท็บจะถูกแทรกระหว่างคอลัมน์แทนที่จะเป็นช่องว่าง รูปแบบนี้ไม่ใช่
ใช้ได้เมื่อแสดงพิกเซลของภาพ (ยกเว้นร่วมกับ -l สวิตซ์).

สุดท้ายโปรดทราบว่า กองทุน สามารถใช้เพื่อสร้างตัวกรองคอลัมน์จากตารางเสริม
ในไฟล์ FITS ตัวอย่างเช่น รหัสเชลล์ต่อไปนี้จะสร้างช่วงเวลาที่ดี
ตัวกรอง (GTI) สำหรับไฟล์ข้อมูล X-ray ที่มีนามสกุล GTI มาตรฐาน:

#!bin / sh /
sed '1,/---- .*/d
/^$/,$d' ⎪ awk 'tot>0{printf "⎪⎪"};{printf "time="$1":"$2; ทีโอที++}'

หากสคริปต์นี้อยู่ในไฟล์ชื่อ "mkgti" สามารถใช้ในคำสั่งเช่น:

fundisp foo.fits"[GTI]" ⎪ mkgti > gti.filter

ไฟล์ตัวกรองที่ได้นั้นสามารถใช้ในโปรแกรม funtools ต่างๆ:

funcnts foo.fits"[@gti.filter]" ...

เพื่อประมวลผลเฉพาะเหตุการณ์ในช่วงเวลาที่เหมาะสม

ใช้ fundisp ออนไลน์โดยใช้บริการ onworks.net



โปรแกรมออนไลน์ Linux และ Windows ล่าสุด