GMT 内置了 40 个使用频率较高的自定义符号,如下图所示。

这些自定义符号包含在 share\custom\ 路径下。当然,你也可以按照官方教程制作满足自己要求的 <name>.def 自定义符号。

绘制自定义符号

以下示例演示了利用 GMT4 在 Windows 下绘制自定义符号的过程。

rem plot_def.bat
rem 使用 psxy -Sk<name>/<size> -G<fill> -W<pen> 来绘制自定义符号
set ps=volcano.ps
pscoast -Rg -JR9i -B60/30 -Gdarkgreen -Slightblue -Dc -A5000 -K > %ps%

echo 74W 40.45N > tmp
echo 31.15E 30.03N  >> tmp
echo 115.49E 31.58S >> tmp
echo 56.16W 34.9S >> tmp

psxy -R -J tmp -Skvolcano/1 -O -K  -Wthinnest -GP300/2 >> %ps%
echo 180W 0S |psxy -J -R -Skmeca/1c -Gblue -K -O  >> %ps%
echo 113E 37N |psxy -R -J -Sksun/1c -Gred -O >> %ps%
rem 生成 png 格式图片
ps2raster %ps% -A -P -Tg -C-sFONTPATH=C:/windows/fonts 
del tmp .gmt*

效果如下:

说明

在 GMT 内置的 def 文件中说明了为何在有 -Sc 可以绘制圆形的情况下还要设计自定义 circle 图案

circle.def

#	$Id: circle.def 12822 2014-01-31 23:39:56Z remko $    
#      
#	Definition file for circle symbol.  Use in psxy    
#	as -Skcircle/size.  Unlike -Sc, this allows for    
#	using patterns as fill    
#    
0	0	1.0	c    

经过测试, -Sc 也是可以填充 patterns 图案的。