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