यह कमांड फ़नजॉइन है जिसे हमारे कई मुफ्त ऑनलाइन वर्कस्टेशन जैसे कि उबंटू ऑनलाइन, फेडोरा ऑनलाइन, विंडोज ऑनलाइन एमुलेटर या मैक ओएस ऑनलाइन एमुलेटर का उपयोग करके ऑनवर्क्स फ्री होस्टिंग प्रदाता में चलाया जा सकता है।
कार्यक्रम:
नाम
फ़नजॉइन - निर्दिष्ट कॉलम पर दो या दो से अधिक FITS बाइनरी तालिकाओं को जोड़ें
SYNOPSIS
funjoin [स्विच] ...
विकल्प
-सभी फाइलों में सक्रिय करने के लिए एक कॉलम # कॉलम
-a1 cols ... प्रत्येक फ़ाइल में सक्रिय करने के लिए एक cols # कॉलम
-बी 'सी1:बीवीएल,सी2:बीवी2' # सभी फाइलों में सामान्य कॉलम के लिए रिक्त मान
-bn 'c1:bv1,c2:bv2' # विशिष्ट फ़ाइलों में कॉलम के लिए रिक्त मान
-j col # कॉलम सभी फाइलों में शामिल होने के लिए
-j1 col ... jn col # प्रत्येक फ़ाइल में शामिल होने के लिए कॉलम
-m मिनट # मिनट एक पंक्ति के आउटपुट से मेल खाता है
-एम अधिकतम # अधिकतम एक पंक्ति के आउटपुट से मेल खाता है
-s # 'jfiles' स्टेटस कॉलम जोड़ें
-S col # स्थिति कॉलम के रूप में col जोड़ें
-t tol # संख्यात्मक कॉलम में शामिल होने के लिए सहनशीलता [केवल 2 फ़ाइलें]
वर्णन
funjoin दो या दो से अधिक (32 तक) की पंक्तियों को जोड़ता है, के आधार पर बाइनरी टेबल फ़ाइलों को फिट करता है
प्रत्येक फ़ाइल में निर्दिष्ट सम्मिलित स्तंभों का मान। ध्यान दें: जुड़ने वाले कॉलम में एक इंडेक्स होना चाहिए
इससे जुड़ी फ़ाइल. ये फ़ाइलें का उपयोग करके उत्पन्न की जाती हैं फनइंडेक्स कार्यक्रम.
प्रोग्राम का पहला तर्क पहले इनपुट FITS तालिका या रॉ इवेंट फ़ाइल को निर्दिष्ट करता है।
यदि "stdin" निर्दिष्ट है, तो डेटा मानक इनपुट से पढ़ा जाता है। बाद के तर्क
शामिल होने के लिए अतिरिक्त ईवेंट फ़ाइलें और तालिकाएँ निर्दिष्ट करें। अंतिम तर्क आउटपुट FITS है
फ़ाइल.
ध्यान दें: करो नहीं जब FITS एक्सटेंशन और पंक्ति फ़िल्टर निर्दिष्ट करने के लिए फ़नटूल्स ब्रैकेट नोटेशन का उपयोग करें
funjoin चला रहे हैं नहीं तो आपको गलत परिणाम मिलेंगे। का उपयोग करके पंक्तियों तक पहुंचा और जोड़ा जाता है
इंडेक्स फ़ाइलें सीधे, और यह सभी फ़िल्टरिंग को बायपास करती है।
जॉइन कॉलम का उपयोग करके निर्दिष्ट किया गया है -j ज़ीन स्विच (जो एक कॉलम नाम निर्दिष्ट करता है
सभी फ़ाइलों के लिए उपयोग करें) या साथ -j1 col1, -j2 col2, ... -जेएन कॉलम स्विच (जो निर्दिष्ट करते हैं a
प्रत्येक फ़ाइल के लिए उपयोग करने योग्य कॉलम नाम)। प्रत्येक फ़ाइल के लिए एक जॉइन कॉलम निर्दिष्ट किया जाना चाहिए। अगर दोनों
-j ज़ीन और -जेएन कॉलम किसी दी गई फ़ाइल के लिए निर्दिष्ट किए जाते हैं, फिर बाद वाले का उपयोग किया जाता है। स्तंभों को जोड़ें
या तो स्ट्रिंग प्रकार का होना चाहिए या संख्यात्मक प्रकार का होना चाहिए; संख्यात्मक और स्ट्रिंग का मिश्रण करना अवैध है
किसी दिए गए जोड़ में कॉलम। उदाहरण के लिए, एक ही कुंजी कॉलम का उपयोग करके तीन फ़ाइलों को जोड़ना
प्रत्येक फ़ाइल, उपयोग करें:
funjoin -j key in1.fits in2.fits in3.fits out.fits
तीसरी फ़ाइल के लिए एक अलग कुंजी इस प्रकार निर्दिष्ट की जा सकती है:
funjoin -j key -j3 Otherkey in1.fits in2.fits in3.fits out.fits
RSI -a "कोल्स" स्विच (और -a1 "col1", -a2 "cols2" समकक्ष) का उपयोग निर्दिष्ट करने के लिए किया जा सकता है
प्रत्येक इनपुट फ़ाइल के लिए सक्रिय करने के लिए कॉलम (यानी आउटपुट फ़ाइल में लिखें)। डिफ़ॉल्ट रूप से, सभी
कॉलम आउटपुट हैं।
यदि अलग-अलग फ़ाइलों के दो या दो से अधिक कॉलमों का नाम समान है, तो दूसरा (और बाद वाला)
अंडरस्कोर और संख्यात्मक मान जोड़ने के लिए कॉलम का नाम बदल दिया गया है।
RSI -m मिनट और -M मैक्स स्विच आवश्यक जुड़ने की न्यूनतम और अधिकतम संख्या निर्दिष्ट करते हैं
एक पंक्ति लिखें. डिफ़ॉल्ट न्यूनतम 0 जोड़ है (यानी सभी पंक्तियाँ लिखी गई हैं) और
डिफ़ॉल्ट अधिकतम 63 है (32 इनपुट की सीमा के साथ संभावित जुड़ावों की अधिकतम संख्या
फ़ाइलें)। उदाहरण के लिए, केवल उन्हीं पंक्तियों को लिखना जिनमें ठीक दो फ़ाइलों में कॉलम हों
वह मिलान (अर्थात् एक सम्मिलित):
फनजॉइन -जे कुंजी -एम 1 -एम 1 इन1.फिट्स इन2.फिट्स इन3.फिट्स ... आउट.फिट्स
किसी दी गई पंक्ति में सभी फ़ाइलों को शामिल किए बिना अपेक्षित संख्या में जोड़ हो सकते हैं
(उदाहरण के लिए तीन फ़ाइलें जोड़ी जा रही हैं लेकिन केवल दो में ही शामिल कुंजी मान दिया गया है)। इस में
मामले में, गैर-जुड़ी फ़ाइल के सभी कॉलम, डिफ़ॉल्ट रूप से, रिक्त स्थान का उपयोग करके लिखे गए हैं
(शून्य या शून्य)। -b सी1:बीवी1,सी2:बीवी2 और -b1 'c1:bv1,c2:bv2' -b2 'c1:bv1,c2 - bv2'...
स्विच का उपयोग सभी फ़ाइलों और/या कॉलमों के लिए सामान्य कॉलम के लिए रिक्त मान सेट करने के लिए किया जा सकता है
क्रमशः एक निर्दिष्ट फ़ाइल में। प्रत्येक रिक्त मान स्ट्रिंग में अल्पविराम से अलग की गई सूची होती है
कॉलम का:blank_val विनिर्देशक। फ़्लोटिंग पॉइंट मान (एकल या दोहरा) के लिए, एक केस-
"नैन" के असंवेदनशील स्ट्रिंग मान का अर्थ है कि IEEE NaN (न-संख्या) का उपयोग किया जाना चाहिए।
इस प्रकार, उदाहरण के लिए:
फ़नजॉइन -बी "अकी:???" -बी1 "ए:-1" -बी3 "जी:एनएएन,ई:-1,एफ:-100"...
इसका मतलब है कि किसी भी फ़ाइल में गैर-जुड़े हुए AKEY कॉलम में स्ट्रिंग "???" होगी, गैर-
फ़ाइल 1 के जुड़े हुए कॉलम में -1 का मान होगा, फ़ाइल 3 का गैर-जुड़ा हुआ G कॉलम होगा
इसमें IEEE NaN शामिल होंगे, जबकि उसी फ़ाइल के गैर-जुड़े E और F कॉलम शामिल होंगे
मान क्रमशः -1 और -100 हैं। बेशक, जहां सामान्य और विशिष्ट रिक्त मान हैं
उसी कॉलम के लिए निर्दिष्ट, विशिष्ट रिक्त मान का उपयोग किया जाता है।
यह भेद करने के लिए कि कौन सी फ़ाइलें किसी दी गई पंक्ति के गैर-रिक्त घटक हैं -s (स्थिति) स्विच
आउटपुट फ़ाइल में "JFILES" नामक बिटमास्क कॉलम जोड़ने के लिए उपयोग किया जा सकता है। इस कॉलम में, ए
दी गई पंक्ति को बनाने वाली प्रत्येक गैर-रिक्त फ़ाइल के लिए बिट सेट किया गया है, जिसमें बिट 0 से मेल खाता है
पहली फ़ाइल, बिट 1 से दूसरी फ़ाइल, इत्यादि। फ़ाइल नाम स्वयं में संग्रहीत हैं
FITS हेडर को JFILE1, JFILE2, आदि नाम के पैरामीटर के रूप में फिट करता है -S ज़ीन स्विच आपको इसकी अनुमति देता है
डिफ़ॉल्ट "JFILES" से स्थिति कॉलम का नाम बदलें।
पंक्तियों के बीच जुड़ाव एक फ़ाइल में दिए गए जुड़ाव वाली सभी पंक्तियों का कार्टेशियन उत्पाद है
दूसरी फ़ाइल में सभी पंक्तियों के साथ कॉलम का मान उसके सम्मिलित कॉलम के लिए समान मान रखता है
जल्द ही। इस प्रकार, यदि फ़ाइल1 में सम्मिलित स्तंभ मान 2 के साथ 100 पंक्तियाँ हैं, तो फ़ाइल2 में सम्मिलित स्तंभ मान 3 के साथ XNUMX पंक्तियाँ हैं
समान मान, और फ़ाइल3 में 4 पंक्तियाँ हैं, तो जुड़ने से 2*3*4=24 पंक्तियाँ आउटपुट होती हैं।
जॉइन एल्गोरिदम सीधे जॉइन कॉलम से जुड़ी इंडेक्स फ़ाइल को प्रोसेस करता है
प्रत्येक फ़ाइल. सभी मौजूदा स्तंभों का सबसे छोटा मान आधार के रूप में चुना गया है, और यह
वैल्यू का उपयोग अन्य फ़ाइलों में समान-मूल्य वाले कॉलमों को जोड़ने के लिए किया जाता है। इस प्रकार, सूचकांक
फ़ाइलें बिल्कुल एक बार ट्रैवर्स की जाती हैं।
RSI -t सहने स्विच संख्यात्मक स्तंभों के लिए एक सहनशीलता मान निर्दिष्ट करता है। वर्तमान में, ए
सहनशीलता मान एक समय में केवल दो फ़ाइलों से जुड़ सकता है। (एक पूरी तरह से अलग एल्गोरिदम है
सहिष्णुता का उपयोग करके दो से अधिक फ़ाइलों को जोड़ने की आवश्यकता है, जिस पर हम विचार कर सकते हैं
भविष्य में कार्यान्वयन।)
निम्नलिखित उदाहरण फ़नजॉइन की कई विशेषताएं दिखाता है। इनपुट फ़ाइलें t1.fits,
t2.fits, और t3.fits में निम्नलिखित कॉलम हैं:
[श] फंडिस्प टी1.फिट्स
एके कुंजी ए.बी
-------- ------ ------ ------
आ 0 0 1
बीबीबी 1 3 4
सीसीसी 2 6 7
ड्ड 3 9 10
ईईई 4 12 13
एफएफएफ 5 15 16
जीजीजी 6 18 19
हह 7 21 22
फंडिस्प t2.fits
एके कुंजी सीडी
-------- ------ ------ ------
iii 8 24 25
जीजीजी 6 18 19
ईईई 4 12 13
सीसीसी 2 6 7
आ 0 0 1
फंडिस्प t3.fits
एके कुंजी ईएफजी -------- -------- -------- --------
-----------
जीजीजी 6 18 19 100.10
जेजेजे 9 27 28 200.20
आ 0 0 1 300.30
डीडीडी 3 9 10 400.40
इन इनपुट फ़ाइलों को देखते हुए, निम्नलिखित फ़नजॉइन कमांड:
funjoin -s -a1 "-B" -a2 "-D" -a3 "-E" -b \
"एक चाबी:???" -बी1 "अकी:XXX,ए:255" -बी3 "जी:एनएएन,ई:-1,एफ:-100" \
-जे कुंजी टी1.फिट टी2.फिट टी3.फिट फू.फिट
KEY कॉलम पर फ़ाइलों में शामिल हो जाएगा, B (t1.fits में), D (in) को छोड़कर सभी कॉलम आउटपुट करेगा
t2.fits) और E (t3.fits में), और AKEY के लिए रिक्त मान सेट करना (वैश्विक स्तर पर, लेकिन ओवरराइड किया गया)
t1.fits के लिए) और A (फ़ाइल 1 में) और G, E, और F (फ़ाइल 3 में)। एक JFILES कॉलम होगा
प्रत्येक पंक्ति में कौन सी फ़ाइलों का उपयोग किया गया था, इसे फ़्लैग करने के लिए आउटपुट:
AKEY कुंजी A AKEY_2 कुंजी_2 C AKEY_3 कुंजी_3 FG JFILES
------ ------ ------ ------ ------ ------ -- -------- -------- -------- -------- --------
आ 0 0 आ 0 0 आ 0 1 300.30 7
बीबीबी 1 3 ??? 0 0 ??? 0 -100 नेन 1
सीसीसी 2 6 सीसीसी 2 6 ??? 0 -100 नेन 3
डीडीडी 3 9 ??? 0 0 ड्ड 3 10 400.40 5
ईईई 4 12 ईईई 4 12 ??? 0 -100 नेन 3
एफएफएफ 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
onworks.net सेवाओं का उपयोग करके फ़नजॉइन का ऑनलाइन उपयोग करें