Xiao-Le Deng

GMT绘制各省的地形图

2021-03-08 16:30
#Skills #GMT

1. 下载地形grd数据

下载地址: https://mirrors.ustc.edu.cn/gmt/data/

上述数据中,最高分辨率为15s(即:earth_relief_15s.grd,约 2.77G)。

如果需要 1s 分辨率,可从SRTM内插数据下载:

2. 绘图代码

#!/bin/bash
# gmt version: Version 5.4.5 [64-bit] [4 cores]
ps=province.ps
gmt gmtset FORMAT_GEO_MAP = dddF MAP_FRAME_WIDTH=2p
gmt gmtset FONT_ANNOT_PRIMARY 7p,Helvetica,black FONT_LABEL 7p,Helvetica,black 
# 根据需要选择省界,CN.42为湖北
gmt pscoast -ECN.42 -M -Df > sd.txt
# psclip 使用省界裁切地图 Begin of the clip
gmt psclip sd.txt `gmt gmtinfo sd.txt -I0.000001` -JM2i -K > $ps
gmt makecpt -Cdem2 -T0/2000/1 > mss.cpt
# 数据的绝对路径为:/Users/shalom/gmt/earth_relief_15s.grd
# grdimage 添加DEM绘图,并添加方位光照效果。
gmt grdimage -J -R /Users/shalom/gmt/earth_relief_15s.grd -Cmss.cpt  -O -K  -I+a0 -Q >> $ps
# End of the clip
gmt psclip -C -O  -R -J >> $ps
# 转换成pdf
gmt psconvert $ps -A -P -Tf
# 删除多余的文件
rm sd.txt mss.cpt *.ps

说明:

  • pscoast 导出省界,省界代码如-ECN.42(湖北),可从GMT目录下dcw-states.txt文件中找到,也可使用命令 gmt coast -E+L 查看省代码(来自DCW: 世界数字图表 — GMT中文手册)。

  • 以中国的数据为例,其包括全部 34 个省级行政区域:23 个省(包括台湾省), 5 个自治区,4 个直辖市,以及香港,澳门 2 个特别行政区。 中国的省代码是数字,和中国居民身份证号码相同:

    • CN 11 Beijing 北京
    • CN 50 Chongqing 重庆
    • CN 31 Shanghai 上海
    • CN 12 Tianjin 天津
    • CN 34 Anhui 安徽
    • CN 35 Fujian 福建
    • CN 62 Gansu 甘肃
    • CN 44 Guangdong 广东
    • CN 52 Guizhou 贵州
    • CN 46 Hainan 海南
    • CN 13 Hebei 河北
    • CN 23 Heilongjiang 黑龙江
    • CN 41 Henan 河南
    • CN 42 Hubei 湖北
    • CN 43 Hunan 湖南
    • CN 32 Jiangsu 江苏
    • CN 36 Jiangxi 江西
    • CN 22 Jilin 吉林
    • CN 21 Liaoning 辽宁
    • CN 63 Qinghai 青海
    • CN 61 Shaanxi 陕西,注意与山西区分
    • CN 37 Shandong 山东
    • CN 14 Shanxi 山西,注意与陕西区分
    • CN 51 Sichuan 四川
    • CN 71 Taiwan 台湾
    • CN 53 Yunnan 云南
    • CN 33 Zhejiang 浙江
    • CN 45 Guangxi 广西
    • CN 15 Nei Monggu 内蒙古
    • CN 64 Ningxia 宁夏
    • CN 65 Xinjiang 新疆
    • CN 54 Xizang 西藏
    • CN 91 Xianggang (Hong Kong) 香港
    • CN 92 Aomen (Macao) 澳门

3. 参考