blog

立体地図のネイチャーペーパーは、もともとこのように描かれていた。

これは2次元の地図で、難易度は全くなく、地図上に直接表示されます。 海底地形3Dステレオマップ+3D散布図、この効果を描画するためにバグgmtを修正した後に使用する必要があり、必要なすべてのプログラム...

Sep 23, 2020 · 3 min. read
シェア


"

"

スライドプレビュー

チュートリアル

効果表示

まずは、ご期待に沿えるようなエフェクト表示イメージから見ていきましょう。

図1 Nature Comms.

描画処理の紹介

GMTは複雑な組み合わせ図を描き、分割してから組み合わせる戦略を推奨!

Figure1(a,b)

これは2つの2次元の図で、まったく難しいことはありません。

図1
図1

Figure1(c)

海底地形の3Dステレオグラム+3Dスキャッター、このエフェクトを描画するには、私のバグ修正後にgmtを使用する必要があります。必要なプログラムはすべてdockerImageの中にあります!

Figure1(d)

海底地形3Dステレオ+3Dスキャッター+スライスデータ+スライスキャスト点とカーブ、この効果を得るためにバグを修正した後、gmtを使って描画する必要がありました。必要なプログラムは全てdockerImageの中にあります!

最終的な組み合わせ

図1の上4つのサブダイアグラムは、それぞれ個別に描画し、組み合わせてレイアウトすることができます。gmtはWYSIWYGの描画ソフトではないので、各サブダイアグラムの位置を設定しやすくするために、A4用紙大のグリッドを補助ベースマップとして使用することで、レイアウト調整を行うことができます。

時間の高画質集中ビデオとすべての描画コード

図1の不完全なマッピングコードの例

合計200行のコードで、上記の3D+2Dの組み合わせの図を処理します。

function preset()
{
 path_data=../../data/raw
 bathy=${path_data}/bathy/bathy_Longqi_cart.nc
 basalt=${path_data}/sites/site_basalt_cart_zhao_bathy.txt
 # データ範囲
 zmin=-6
 zmax=-1.5
 zrange=$zmin/$zmax
 xmin=-18.35
 xmax=33.35
 ymin=-
 ymax= 
 range=$xmin/$xmax/$ymin/$ymax 
 range_xyz=${range}/$zrange
 xmin_eq=0
 xmax_eq=20
 ymin_eq=-10
 range_xyz_eq=$xmin_eq/$xmax_eq/$ymin_eq/$ymax_eq/$zmin_eq/$zmax_eq
 #  
 angle_h=-40 
 angle_v=45
 angle_view=${angle_h}/$angle_v
 # イメージサイズ
 width_x_fig=8
}
gmt begin Figure1 pdf 
 # (a)
 move_x=0
 move_y=12
 # gmt basemap -JM$figwidth_inset -R$range_inset -Bwsen --MAP_FRAME_TYPE=plain
 # gmt basemap 
 gmt coast -Ggray -JL$lon0_inst/$lat0_inst/$lat_min_inset/$l
 gmt grdcontour $bathy_AUV -C0.02 -A+f3p,Helvetica+ggreen -W0.2p -GD500e -p
 #  
 symbol_sample=c
 gmt psxy $path_data/sites/M-active.txt -S$symbol_sample$si
 # legend
 # (d)
 move_x=-1
 move_y=-4
 gmt basemap -JX$width_x_fig_eq/$width_y_fig_eq -JZ$width_z
 gmt grdview $bathy -JZ -p -C$bathy_cpt -N${zmin_eq}+g$color_profile -Qi -I0+a45 -Wf0.5p,black
 awk '{print $1/, $2/}' $earthquake | gmt grdtrack -G$bathy | gmt psxyz -JZ -p -Sc$size_eq -Ggreen -Wblack
 # 東西
 gmt basemap -JX$width_x_fig_eq/$width_z_fig_eq -JZ$width_y_
# boundary between title and legend
# symbol space legend type length (-) thickness,color space LegendName
# N 3
H 10p Helvetica Legend of figure (c)
N 2
G ${gap_rows}c
S ${left_symbol}c a 0.3c $color_active 0.2p,$color_active ${symbol_text}c Active hydrothermal field
S 1c c ${size_symbol}c $color_basalt 0
gmt end
rm tmp* gmt.history box.eq 



Read next

お楽しみに!エメット流JQだ!

JQの使い方を模倣し、dom、event、cssなどの基本的なapiを提供します。興味があれば、後で拡張を続けることができます。 大きなコンテナにはラップされた各要素が格納され、QElementはQElementをトラバースしてQElemeを生成するために使用されます...

Sep 23, 2020 · 2 min read