2016-03-28 9 views
4

ヘッダー、カラムの名前とユニット、およびデータのいくつかの情報を含むasciiテーブルを作成しようとしています。この:astropyテーブルのヘッダとユニットをasciiファイルに保存するにはどうすればいいですか?

# ... Header Info ... 
      Name | Morphology |   ra_u |  dec_u | ... 
       | InNS+B+MOI | HH:MM:SS.SSS | ±DD:MM:SS:SSS| ... 
==============| ========== | ============ | ============ | ... 
1_Cam_A  | I   | 04:32:01.845 | +53:54:39.03 ... 
10_Lac  | I   | 22:39:15.679 | +39:03:01.01 ... 
... 

これまでのところ私はnumpyのは本当に私の問題を解決することはできません、numpy.savetxtとastropy.ascii.writheで試してみたとascii.writeと私は似た何かを得ることができましたではなく、かなり右:

:私はこのコードを使用してい

   Name | Morphology |   ra_u |  dec_u | ...  
================== | ========== | ============ | ============ | ... 
1_Cam_A   | I   | 04:32:01.845 | +53:54:39.03 ... 
... 

私は私の端末で印刷を行う場合には、ヘッダ情報を除く必要があるように、表に見える210

formato= {'Name':'%-23s','Morphology':'%-10s','ra_u':'%s','dec_u':'%s',...} 
names=['Name','Morphology','ra_u','dec_u','Mag6'] 
units=['','InNS+B+MOI','HH:MM:SS.SSS','±DD:MM:SS:SSS',...] 
ascii.write(data, output='pb.txt',format='fixed_width_two_line',position_char='=',delimiter=' | ',names=names, formats=formato) 

が、私は単位が消えてファイルに保存して...

はにどのような方法がありますそれらをファイルに含めるか、ファイルを保存して後で編集する必要がありますか?

P.D:IPACのascii.writeのような他のフォーマットも試しています。その場合、問題はヘッダの4行目のようなものです: '| null |ヌル| .....」と私は...それを取り除くためにどのように助け

未saludoため

感謝を知りません。

+0

私は少しあなたの例について混乱しています。あなたの例では、どのようなタイプのオブジェクトが 'data'ですか? Astropy Tableの場合、どのようにユニットが格納されているかは、astropyによって認識される意味でのユニットではなく、POVからの任意の文字列です。あなたの例で 'ascii.write()'を呼び出すと、 "units"も何もしません。 必要かどうかわかりませんが、ここで説明しているようにカスタムリーダ/ライターを定義することもできます:http://docs.astropy.org/en/stable/io/ascii/read.html#advanced-customization – Iguananaut

答えて

4

astropy.tableまたはastropy.io.asciiを使用して、一般的な方法で列の単位を簡単に書き出す方法はありません。機能リクエストでhttps://github.com/astropy/astropy/issuesに問題を提起したい場合があります。

tbl.write('test.txt', format='ascii.ipac') 
with open('test.txt', 'r') as fh: 
    output = [] 
    for ii, line in enumerate(fh): 
     if ii not in (1,3): 
      output.append(line) 

with open('test.txt', 'w') as fh: 
    fh.writelines(output) 

そして、IPAC形式で書き出す2番目と4番目の行を削除します:

しかし、形式ascii.ipacを使用してかなり簡単な回避策があります。

+0

うん、それは私が考えていたことだ...ファイルを書き写して悔い改めて編集する... 'fixed_width'のような他のフォーマットでも何とか働くはずだ 私は問題を提起するだろう ありがとう – Emberck

1

テーブルの絶対にはがある場合を除いて、列のより複雑なメタデータを含むASCIIテーブルが必要な場合は、ECSV形式の使用を検討してください。

+0

私は ' ECSV形式であり、私のニーズに合っていません。最後に、 'IPAC'を '| 'デリミタとして...十分に近く、人々、Python、IDL、VOで読むことも簡単です。 いずれにしても、感謝の答え – Emberck

関連する問題