merge vector visualization software: go-merge


last updated on February 24th, 2003

1. startup routines

まず、goを起動します。そののちに、merge_routines.proというcomponentを以下のようにしてcompileしてあげてください。必要なIDL routinesが順にcompileされます。

Go> .run merge_routines

必要なprocedureのcompileができたら、merge vector visualization routinesをstartさせます。この手続きによって、dataの取り込みに必要な配列などが用意され、visualizationの準備がすべて完了します。merge_routinesのstartupは以下のcommandで行います。

start_merge

Go> start_merge

Welcome to the wonderful world of Go-merge !!

If you have any questions about go-merge, feel free to contact hosokawa@kugi.kyoto-u.ac.jp

messageがでて、promptが以下のように変わったら、起動成功です。

Go-merge>


2. data description

merged vector dataは、steam01の/radar03以下に格納されています。同じ内容のdataがasciiとbinaryの双方の形式で保存されています。binary fileのfilenameは以下のようになっています。

    1998080106ef.mrg: 1998年8月1日6時UTから2時間のmerge data

拡張子の手前の'ef'という文字は、どのradarのdataを合成してできたmerge fileかということを表しています。'e'は、Iceland East radar、'f'はFinland radarを表しています。radarの位置は、http://superdarn.jhuapl.edu/sites/index.htmlを参照してください。radarとradar IDの間の関係は以下のようになっています。

     Northern Hemisphere radars  radar ID      Southern Hemisphere radars  radar ID     
    ===================== ====== ====================== ======
     Goose Bay g Halley h
     Kapuskasing k Sanae d
     Saskatoon t Syowa South j
     Prince George b Syowa East n
     Kodiak a Tasmania r
     Iceland West w Keruguelen p
     Iceland East e
     Finland f
     Iceland East f
     King Salmon c

たまに"1998080106eafa.mrg"といったような名前のfileがあります。radar IDのあとにaという文字が付いているのは、operationが2時間の間に変更になったため、別のfileにdataを書き出したことを意味します。日付が変わったときにこの種のfileが現れたりします。merge routineでは、binaryのfileを自動的に読み出すようになっていますので、そのformatを具体的に知っておく必要はありません。

また、ascii fileは以下のようなfilenameになっています。

    1998980106ef.mrg.asc: 1998年8月1日6時UTから2時間のmerge file

ascii fileには、2分ごとのmerged vectorが地理座標のx,y,z成分で書かれています。また、そのvectorが生えている位置が地理緯度経度で示されています。具体的なformatは以下のようです。


このascii fileは統計的な解析をやるときに、使うことを想定しています。このgo-mergeでは使用しません。


3. load the merged vectors

自分が見たいと思っている日にdataがどの程度存在するかを以下のcommandで調べます。

list_merge, year, month, day

例えば、1995年5月20日についてdataのavailabilityをcheckすると、

Go-merge> list_merge, 1995, 5, 20

01: /radar03/199505/19950520/1995052000gw.mrg (size in kB 7)
02: /radar03/199505/19950520/1995052000tk.mrg (size in kB 7)
03: /radar03/199505/19950520/1995052002gw.mrg (size in kB 6)
04: /radar03/199505/19950520/1995052002tk.mrg (size in kB 7)
05: /radar03/199505/19950520/1995052004gw.mrg (size in kB 6)

(中略)

20: /radar03/199505/19950520/1995052018tk.mrg (size in kB 136)
21: /radar03/199505/19950520/1995052020gw.mrg (size in kB 12)
22: /radar03/199505/19950520/1995052020tk.mrg (size in kB 248)
23: /radar03/199505/19950520/1995052022gw.mrg (size in kB 21)
24: /radar03/199505/19950520/1995052022tk.mrg (size in kB 35)

指定された期日に利用可能なmerge fileの一覧がでます。各行の末尾にfile sizeが表示されており、この大きさを参照することでmerge vectorの数をある程度推し量ることが可能です。この中から22番目に表示されているfileを読んでみます。読み込みcommandは、

file_merge, merge_file_number

Go-merge > file_merge, 22

Merge file : /radar03/199505/19950520/1995052020tk.mrg Revision: 2.4 Integration: 120.0 s

Map 000: 2002 04s (140) to 2003 56s (140) 33 vectors
Map 001: 2004 02s (140) to 2005 53s (140) 36 vectors
Map 002: 2006 00s (140) to 2007 58s (140) 39 vectors
Map 003: 2008 04s (140) to 2009 57s (140) 29 vectors
Map 004: 2010 03s (140) to 2011 55s (140) 27 vectors

(中略)

Map 054: 2150 01s (140) to 2151 59s (140) 37 vectors
Map 055: 2152 05s (140) to 2153 57s (140) 38 vectors
Map 056: 2154 03s (140) to 2155 55s (140) 31 vectors
Map 057: 2156 01s (140) to 2157 59s (140) 19 vectors
Map 058: 2158 05s (140) to 2159 57s (140) 13 vectors

merge fileに入っているdataの一覧が表示されます。2分ごとのmapにいくつのmerged vectorが生えているかがわかると思います。これで、merge fileの読み込みは完了しました。後で、読み込んだ内容を確認するには以下のcommandを用います。

print_merge_info

Go-merge > print_merge_info

Merge file: /radar03/199505/19950520/1995052020tk.mrg

Total number of maps: 059
Current map number : 000

Map 000: 2002 04s (140) to 2003 56s (140) 33 vectors
Map 001: 2004 02s (140) to 2005 53s (140) 36 vectors
Map 002: 2006 00s (140) to 2007 58s (140) 39 vectors
Map 003: 2008 04s (140) to 2009 57s (140) 29 vectors
Map 004: 2010 03s (140) to 2011 55s (140) 27 vectors

 (中略)

Map 054: 2150 01s (140) to 2151 59s (140) 37 vectors
Map 055: 2152 05s (140) to 2153 57s (140) 38 vectors
Map 056: 2154 03s (140) to 2155 55s (140) 31 vectors
Map 057: 2156 01s (140) to 2157 59s (140) 19 vectors
Map 058: 2158 05s (140) to 2159 57s (140) 13 vectors

Total map numberは取り込まれているmapの総数で、current map numberは現在plotするmapとして選択されているmapの番号を示しています。fileを読み込んですぐは、この値は0になっています(つまり一番最初のmap)。

あとは、memoryに取り込まれたmerged vectorをplotするだけです。


4. plot the mergec vectors

merged vectorをplotするcommandは以下です。

plot_polar_merge, /clip, /arrows, /ref

まず、何も考えずに、

Go-merge> plot_polar_merge

としてみます。map 00のmerged vectorが出力されると思います。もし、merged vectorの近くだけをplotしたい場合は、clip keywordを用います。

Go-merge> plot_polar_merge, /clip

vectorの近傍だけがplotされるはずです。vectorを矢印にしたければ、arrows keywordを用います。

Go-merge> plot_polar_merge, /arrows

また、scaleを表示したければ、ref keywordを用います。

Go-merge> plot_polar_merge, /ref

また、自分がplotしたいmapを指定するには、以下のcommandを用います。

go_map, map_number

例えば、20番目のmapがplotしたければ、

Go-merge> go_map, 20
Go-merge> plot_polar_merge, /clip, /arrows, /ref

などとしてやればよいわけです。今は、ひとつのpanelを出しましたが、複数のpanelにmapを進めながら出力することも可能です。

plot_polar_merge, columns, rows, /clip

columnsは横方向のpanelの数、rowsは縦方向のpanelの数です。例えば、portraitのoutput deviceに横2縦3枚のpanelを書きたいときは、

Go-merge> set_format,/portrait
Go-merge> clear_page
Go-merge > plot_polar_merge, 2, 3, /clip

などとしてやればよいです。指定したmapから2x3=6 map分のpanelが出力されると思います。

このplot_polar_merge commandでdataのpreviewに関しては十分ですが、清書用に以下のようなcommandもあります。

plot_polar_merge_panel, columns, rows, column, row, position=position, /clip, /no_axis, /ref, /arrows

このcommandは、1つのoutput deviceを横方向にcolumns、縦方向にrowsに分割し、そのcolumn番目とrow番目のpanelにmap plotを出力するというものです。注意すべきは、columnおよびrowは0から始まるということです。例えば、deviceを縦方向に2つに分割し、上側のpanelにmap 20、下側のpanelにmap 40を出力したいときは、以下のようにします。

Go-merge> go_map, 20
Go-merge> plot_polar_merge_panel, 1, 2, 0, 0, ,/clip, /no_axis, /ref, /arrows
Go-merge> go_map, 40
Go-merge> plot_polar_merge_panel, 1, 2, 0, 1, ,/clip, /no_axis, /ref, /arrows

また、お好みの位置にpanelを出したい時は、position keywordを用います。device座標で、panelの角の座標を指定してやります。device座標は、縦横ともに、0から1の範囲で設定されています。具体的な使い方は以下のようになります。

Go> plot_polar_merge_panel, position=[0.2, 0.3, 0.8, 0.7], /clip, /no_axis, /ref, /arrows

但し、plot_polar_merge commandと違って、plot_polar_merge_panelではtitleが自動的に表示されません。よって以下のcommandを用いてtitleを表示させます。

plot_merge_title, subtitle, main_title=main_title

sub_titleおよびmain_titleを以下のように指定できますが、

Go-merge> plot_merge_title, 'merged vector', main_title='SuperDARN Parameter Plot'

もし、指定しない場合は、自動的にtitleの文句は決定されます。

以上で、go-mergeの簡単な解説を終わります。

                             Just type start_merge, it's easier than taking a shower of coffee ...


switch to gwave.ice.uec.ac.jp/~hosokawa/codes/codes.html