coast¶
官方文件: | coast |
---|---|
簡介: | 在地圖上繪製海岸線、河流、國界線 |
coast 模塊利用 GMT 自帶的 GSHHG數據 和 DCW數據 繪製海岸線、河流、政治邊界,還可以裁剪陸地區域或水域,也可以將數據導出到文件中。
語法¶
gmt coast -Jparameters -Rregion [ -Amin_area[/min_level/max_level][+a[g|i][s|S]][+r|l][+ppercent] ] [ -Bparameters ] [ -Cfill[+l|+r] ] [ -Dresolution[+f] ] [ -Edcw ] [ -Fbox ] [ -Gfill ] [ -Iriver[/pen] ] [ -Jz|Zparameters ] [ -Lscalebar ] [ -M ] [ -Nborder[/pen] ] [ -Q ] [ -Sfill ] [ -Trose ] [ -U[stamp] ] [ -V[level] ] [ -W[level/]pen ] [ -X[a|c|f|r][xshift[u]] ] [ -Y[a|c|f|r][xshift[u]] ] [ -bobinary ] [ -pflags ] [ -ttransp ] [ --PAR=value ]
必選選項¶
- -Jprojection (more …)
- 设置地图投影方式。
- -Rxmin/xmax/ymin/ymax[+r][+uunit] (more …)
- 指定数据范围
对于三维透视图 -p,可以加上 /zmin/zmax 指定Z轴的范围。
可選選項¶
- -Amin_area[/min_level/max_level][+a[g|i][s|S]][+r|l][+ppercent]
不绘制面积过小的区域(湖泊或岛屿),或不绘制某个级别的湖泊边界。
在绘制湖泊时,若不管湖泊的面积大小而把所有湖泊的边界都画上去,可能导致图看上去比较乱,该选项用于对湖泊进行筛选。面积小于 min_area 平方千米或者湖泊级别不在 [min_level,max_level] 范围的边界都不会被绘制。默认值为 0/0/4,即绘制所有湖泊边界,即绘制0到4级所有级别的面积大于0的湖泊。
对于level=2,即湖岸线,包括常规的湖以及很宽的河流。加上 +r 则只绘制河流,加上 +l 则只绘制常规湖。
对于南极洲而言,因为有冰层的存在,所以海岸线有多种处理方式:
- +ai 用ice shell boundary作为南极洲的海岸线,默认值
- +ag 以ice grounding line作为海岸线
- +as 忽略南纬60度以南的海岸线,用户可以使用 plot 绘制自己的南极洲海岸线
- +aS 忽略南纬60度以北的海岸线
+pprecent:一个多边形,降低精度后,边数减少,面积变化,当面积变化过大时再绘制这个多边形就不合适了,该子选项用于去除那些面积与最高精度面积之比小于 percent 的多边形。
- -Bparameters (more …)
- 设置底图边框和轴属性
- -Cfill[+l|+r]
設置湖泊與河流湖的顏色。
默認情況下,湖泊與河流湖會被當做wet區域,直接使用 -S 指定的填充值。使用 +l 或 +r 可以爲湖泊或河流湖單獨指定顏色。
- -Dresolution[+f]
選擇海岸線數據精度。
GMT自帶的GSHHG海岸線數據有5個不同精度的版本,從高到低依次爲:full、high、intermediate、low和crude。GMT默認使用低精度數據。該選項可以指定要使用的數據精度,其中 f|h|i|l|c 分別代表5種不同的數據精度。也可以用 -Da 選項,此時GMT會根據當前繪圖區域的大小自動選擇合適的數據精度 [默認使用 -Da]
默認情況下,若找不到指定精度的海岸線數據,程序會自動報錯退出。該選項中加上 +f 則命令在找不到當前指定的精度數據時,自動尋找更低精度的數據。
- -Ecode1,code2,…[+l|L][+gfill][+ppen][+r|R[inc]]
利用DCW數據繪製或導出行政區劃邊界(洲界、國界、省界)
GMT自帶了DCW(Digital Chart of World)數據,即全球的行政區劃數據。其包含了全球各國國界和省界數據。該數據獨立於GSHHG數據,因而 -A 和 -D 選項對該數據無效。關於DCW數據及其用法的詳細介紹見 DCW: 世界數字圖表。
通過指定一個或多個以逗號分隔的區域代碼 code 即可指定一個或多個行政區域。 code 可以取如下幾種形式:
- 洲代碼前加上 = 則繪製整個洲內所有國家邊界。比如 =AS 會繪製所有亞洲國家的邊界
- 直接使用國界代碼,則繪製國界邊界。比如 US 繪製美國邊界
- 使用 國家代碼.*州代碼* 則繪製州(省)邊界。比如 US.TX 繪製美國Texas州的邊界
可以使用如下子選項列出可使用的 code:
- +l 僅列出所有國家及其對應代碼,不繪製邊界也不提取數據
- +L 列出部分國界的省及其代碼
通過加上子選項,可以進一步設置指定區域的邊界屬性或填充屬性:
- +ppen 表示繪製多邊形輪廓 [默認無輪廓]
- +gfill 表示設置多邊形的填充色 [默認無填充色]
若想要不同的區域有不同的畫筆或填充屬性,則需要多次使用 -E 選項,每次指定不同的區域以及不同的畫筆或填充屬性。
若使用了 -E 但不指定 -J 和 -M 則會以 -Rw/e/s/n 的形式輸出對應行政區域的區域範圍。
- -F[l|t][+cclearances][+gfill][+i[[gap/]pen]][+p[pen]][+r[radius]][+s[[dx/dy/][shade]]]
控制比例尺和玫瑰圖的背景邊框
若只使用 -F 而不使用其它子選項,則會在比例尺或方向玫瑰的周圍繪製矩形邊框。下面簡單介紹各子選項,詳細用法見 繪製修飾物
- +ppen 指定背景面板的畫筆屬性(默認畫筆屬性由 MAP_FRAME_PEN 決定)
- +gfill 設置背景面板的填充色 [默認不填充]
- +cclearances 以設置不同方向的空白間隔
- +igap/pen 在背景面板內部繪製一個額外的內邊框。gap 爲外邊框與內邊界之間的距離 [2p],默認邊界屬性由 MAP_DEFAULT_PEN 控制
- +rradius 控制圓角矩形邊框,圓角矩形半徑 radius 默認爲 6p
- +s 繪製背景面板陰影區。dx/dy 是陰影區相對於背景面板的偏移量 [4p/4p]。 shade 爲陰影區的顏色 [gray50]。
該選項默認會同時控制比例尺和方向玫瑰的背景邊框。加上 l|t 則表示只控制 -L或 -T 選項繪製的特徵。
- -Gfill
設置dry區域的填充色或裁剪dry區域
-Gfill 設置dry區域(一般指陸地)的填充色。若不指定 fill 則會將dry區域裁剪出來,使得接下來的繪圖只有dry區域內的纔會被繪製。
- -Iriver[/pen]
繪製河流。
河流 river 可以取:
- 0 = Double-lined rivers (river-lakes)
- 1 = Permanent major rivers
- 2 = Additional major rivers
- 3 = Additional rivers
- 4 = Minor rivers
- 5 = Intermittent rivers - major
- 6 = Intermittent rivers - additional
- 7 = Intermittent rivers - minor
- 8 = Major canals
- 9 = Minor canals
- 10 = Irrigation canals
- a = All rivers and canals (0-10)
- A = All rivers and canals except river-lakes (1-10)
- r = All permanent rivers (0-4)
- R = All permanent rivers except river-lakes (1-4)
- i = All intermittent rivers (5-7)
- c = All canals (8-10)
pen 的默認值爲 default,black,solid,該選項可重複使用多次以分別指定不同等級河流的畫筆屬性。
- -L[g|j|J|n|x]refpoint+c[slon/]slat+wlength[e|f|k|M|n|u][+aalign][+f][+jjustify][+l[label]][+odx[/dy]][+u][+v]
在地图上指定位置绘制比例尺
简单介绍各子选项的含义,详情见 繪製修飾物
- g|j|J|n|x]refpoint指定地图上的参考点
- g 指定某地图坐标位参考点
- j|J 通过2字母的对齐方式码指定矩形区域的某个锚点作为参考点
- n 在归一化坐标系(即0-1)中指定参考点
- x 在绘图坐标系下指定参考点
- +jjustify 指定比例尺上的锚点(默认锚点为比例尺的中心)
- +odx/dy 在参考点的基础上设置比例尺的额外偏移量
- +c[slon/]slat 要绘制哪一个点的比例尺,对于倾斜投影,slon 默认取中央经线
- +wlength[e|f|k|M|n|u] 指定比例尺长度及其单位 [默认为km]
- +aalign 修改比例尺标签的对齐方式。标签默认位于比例尺上方中部,可以取 l|r|t|b分别代表左右上下
- +f 默认是简单的比例尺,使用该选项则绘制fancy比例尺,即黑白相间的火车轨道比例尺
- +llabel 为比例尺添加标签;若不指定 label,默认的标签是比例尺所使用的长度单位
- +u 比例尺的标注默认只有值没有单位,该选项会给所有标注加上单位
- +v 垂直比例尺(仅限于笛卡尔坐标系)
以下GMT配置参数可以控制比例尺的外观:
- FONT_LABEL 控制比例尺的标签字体
- FONT_ANNOT_PRIMARY 控制比例尺的标注字体
- MAP_SCALE_HEIGHT 控制比例尺的高度
- MAP_TICK_PEN_PRIMARY 控制比例尺的线及刻度属性
- g|j|J|n|x]refpoint指定地图上的参考点
- -M
將邊界數據以多段ASCII表或二進制表的形式導出到標準輸出
使用該選項,則只導出數據而不繪圖。該選項需要與 -E, -I, -N 或 -W 選項一起使用。
- -Nborder[/pen]
繪製政治邊界。
該選項在某些地方與 -E 選項有重疊。邊界類型 border 可以取:
1
:國界2
:州界;(目前只有美國、加拿大、澳大利亞以及南美各國的數據)3
:Marine boundariesa
:1-3的全部邊界;
pen 的默認屬性爲 default,black,solid。該選項可重複多次使用,以指定不同級別邊界的不同畫筆屬性。
- -Q
關閉區域裁剪。
使用 -G 和 -S 可以分別裁剪出dry區域和wet區域,接下來的其他繪圖命令中只有在裁剪區域內的部分纔會被繪製。在繪圖結束後,需要關閉裁剪,就需要再次調用 coast,並加上 -Q 選項。若在開啓裁剪後使用了 -X 和 -Y 選項,則在關閉時也要記得使用 -X 和 -Y。
- -Sfill
設置wet區域的填充色或裁剪wet區域
-Sfill 設置wet區域(一般指海洋或湖泊)的填充色。若不指定 fill 則將wet區域裁剪出來,使得接下來的繪圖只有wet區域內的纔會被繪製。
- -Td[g|j|J|n|x]refpoint+wwidth[+f[level]][+jjustify][+lw,e,s,n][+odx[/dy]]
在指定位置绘制方向玫瑰图
简单介绍各子选项的含义,详情见 繪製修飾物
- g|j|J|n|x]refpoint指定地图上的参考点
- g 指定某地图坐标位参考点
- j|J 通过2字母的对齐方式码指定矩形区域的某个锚点作为参考点
- n 在归一化坐标系(即0-1)中指定参考点
- x 在绘图坐标系下指定参考点
- +jjustify 指定比例尺上的锚点 [MC]
- +odx/dy 在参考点的基础上设置方向玫瑰图的额外偏移量
- +wwidth 玫瑰图宽度
- +flevel 绘制fancy玫瑰图。level 取不同值代表不同类型的玫瑰图。
level 可以取:
1
绘制E-W和N-S四个方向2
绘制8个方向3
绘制16个方向
- +lw,e,s,n 为四个方向分别指定标签。默认标签是四个方向的单字母代码(英文语言下是W、E、S、N),四个方向的标签之间用逗号分隔,若留空则表示不添加标签。比如
+lw,e,s,n
或+l",,Down,Up"
。标签的文字属性由 FONT_TITLE 控制
- g|j|J|n|x]refpoint指定地图上的参考点
- -Tm[g|j|J|n|x]refpoint+wwidth[+ddec[/dlabel]]][+ipen][+jjustify][+lw,e,s,n][+ppen][+tints][+odx[/dy]]
在指定位置绘制磁场玫瑰图
磁场玫瑰包括两个同心圆环,其中外环用于展示方向信息,内环用于显示磁场方向。
简单介绍各子选项的含义,详情见 繪製修飾物
- g|j|J|n|x]refpoint指定地图上的参考点
- g 指定某地图坐标位参考点
- j|J 通过2字母的对齐方式码指定矩形区域的某个锚点作为参考点
- n 在归一化坐标系(即0-1)中指定参考点
- x 在绘图坐标系下指定参考点
- +jjustify 指定比例尺上的锚点 [MC]
- +odx/dy 在参考点的基础上设置玫瑰图的额外偏移量
- +wwidth 玫瑰图宽度
- +ppen 绘制外环并设置其画笔属性
- +ipen 绘制内环并设置其画笔属性
- +ddec/dlabel 设置磁倾角以及罗盘指针上的磁倾角标签。若 dlabel 为空,则使用默认标签 d = dec;若 dlabel 为 -,则不绘制标签。当使用 +d 子选项时,会同时绘制地理方向和磁场方向
- +lw,e,s,n 为四个方向分别指定标签。默认标签是四个方向的单字母代码(英文语言下是W、E、S、N),四个方向的标签之间用逗号分隔,若留空则表示不添加标签;若 n 取值为 *,则会在北方向标签处绘制星代表北极星。比如
+lw,e,s,n
或+l",,Down,Up"
或+l,,,*
。标签的文字属性由 FONT_TITLE 控制 - 内外环都可以设置标注、刻度和网格的间隔。内外环的间隔默认值都是
30/5/1
。可以使用 +tints 选项,后面接6个斜杠分隔的值,以分别指定两个圆环的 3种刻度值,其中前三个值控制内环属性,后三个值控制外环属性
- g|j|J|n|x]refpoint指定地图上的参考点
- -U[label][+c][+jjust][+odx/dy] (more …)
- 在图上绘制GMT时间戳logo
- -V[level] (more …)
- 设置 verbose 等级 [c]
- -W[level/]pen
繪製岸線(shoreline)
shore指水與陸地交界的“岸”(如:海岸、湖岸、河岸等),是一個較爲籠統的說法。
GMT中岸線分成四個等級(level 取1-4):
- coastline:海岸線
- lakeshore:湖泊與陸地的岸線
- island-in-lake shore:首先要有陸地,陸地中有個湖,湖裏有個島。即島的岸線
- lake-in-island-in-lake shore:首先有陸地,陸地中有個湖,湖中有個島,島裏又有個湖。這裏指的是湖的岸線
使用時需要注意:
- 不使用 -W 選項,則不繪製任何shore
- 使用 -W ,給定畫筆屬性 pen,但不給出 level,則繪製四個level的shore
- 在同一個命令中可以多次使用 -W,以指定不同 level 的shore的畫筆屬性
- -W 選項中 level 是可選的,而 pen 是必須的!因而 -W2 會被解釋爲所有level的畫筆屬性,而不是level 2
-X[a|c|f|r][xshift[u]]
- -Y[a|c|f|r][yshift[u]] (more …)
- 移动绘图原点
- -bo[ncols][type] (more …)
- 设置二进制输出的数据格式
- -p[x|y|z]azim[/elev[/zlevel]][+wlon0/lat0[/z0]][+vx0/y0] (more …)
- 设置3D透视视角
- -t[transp] (more …)
- 设置图层透明度(百分比)。取值范围为0(不透明)到100(全透明)
- -^ 或 -
- 显示简短的帮助信息,包括模块简介和基本语法信息(Windows下只能使用 -)
- -+ 或 +
- 显示帮助信息,包括模块简介、基本语法以及模块特有选项的说明
- -? 或无参数
- 显示完整的帮助信息,包括模块简介、基本语法以及所有选项的说明
- --PAR=value
- 临时修改GMT参数的值,可重复多次使用。参数列表见 gmt.conf
示例¶
在入門教程 繪製海岸線 和 GSHHG: 全球高分辨率海岸線數據 均提供了一些 coast 的使用實例。
繪製非洲地圖,並繪製河流、國界,以及設置不同的填充色:
gmt coast -R-30/30/-40/40 -Jm0.1i -B5 -I1/1p,blue -N1/0.25p,- \
-I2/0.25p,blue -W0.25p,white -Ggreen -Sblue -png africa
繪製Iceland地圖,使用pattern #28做填充:
gmt coast -RIS+r1 -Jm1c -B -Wthin -Gp28+r100 -pdf iceland
將非洲區域裁剪出來,並在其中的陸地部分繪製地形:
gmt begin map png
gmt coast -R-30/30/-40/40 -Jm0.1i -B -G
gmt grdimage @earth_relief_05m
gmt coast -Q
gmt end show
繪製部分國家的國界線:
gmt coast -JM6i -Baf -EGB,IT,FR+gblue+p0.25p,red -EES,PT,GR+gyellow -pdf map
提取冰島的高精度海岸線數據:
gmt coast -RIS -Dh -W -M > iceland.txt
FAQ¶
錯誤消息:
coast: low resolution shoreline data base not installed.
出現該錯誤的原因有如下幾種:
- 未安裝GSHHG海岸線數據
- 安裝了但路徑不正確(建議的做法是把所有GSHHG的文件放在
$GMTHOME/share/coast
目錄下) - 安裝的netCDF版本號爲3.x而不是4.x
- 自行編譯了netCDF 4.x,且編譯時使用了
--disbale-netcdf4
選項