GMT 入门
GMT 实例
GMT 进阶
- 基础知识
- 表数据
- 网格文件
- 颜色表 CPT
- 标准选项
- 地图投影
- -JX: Linear, logarithmic, power, and time
- -JP: Polar/Cylindrical
- -JA: Lambert azimuthal equal area
- -JB: Albers conic equal area
- -JC: Cassini cylindrical
- -JCyl_stere: Cylindrical stereographic
- -JD: Equidistant conic
- -JE: Azimuthal equidistant
- -JF: Azimuthal gnomonic
- -JG: Azimuthal orthographic/General perspective
- -JH: Hammer equal area
- -JI: Sinusoidal equal area
- -JJ: Miller cylindrical
- -JK: Eckert equal area
- -JL: Lambert conic conformal
- -JM: Mercator cylindrical
- -JN: Robinson
- -JO: Oblique Mercator
- -JPoly: (American) polyconic
- -JQ: Equidistant cylindrical
- -JR: Winkel Tripel
- -JS: General stereographic
- -JT: Transverse Mercator
- -JU: Universal Transverse Mercator (UTM)
- -JV: Van der Grinten
- -JW: Mollweide
- -JY: Cylindrical equal area
- 配置参数
- 地学数据集
- 中国地理空间数据集
- 中文支持
- API
- 模块手册
- basemap
- begin
- clear
- clip
- coast
- colorbar
- contour
- coupe
- end
- figure
- filter1d
- fitcircle
- gmt
- gmt-config
- gmtbinstats
- gmtconnect
- gmtdefaults
- gmtget
- gmtinfo
- gmtlogo
- gmtmath
- gmtselect
- gmtset
- gmtsimplify
- gmtspatial
- gmtsplit
- gmtvector
- gmtwhich
- grd2cpt
- grd2xyz
- grdblend
- grdclip
- grdcontour
- grdconvert
- grdcut
- grdedit
- grdfill
- grdimage
- grdinfo
- grdlandmask
- grdmask
- grdmath
- grdpaste
- grdproject
- grdsample
- grdtrack
- grdtrend
- grdvector
- grdview
- grdvolume
- gshhg
- histogram
- image
- img2google
- img2grd
- kml2gmt
- makecpt
- mapproject
- mask
- meca
- nearneighbor
- plot
- polar
- project
- psconvert
- rose
- sac
- sample1d
- solar
- spectrum1d
- sph2grd
- sphdistance
- sphinterpolate
- sphtriangulate
- surface
- ternary
- text
- triangiulate
- velo
- wiggle
- x2sys_binlist
- x2sys_cross
- x2sys_datalist
- x2sys_get
- x2sys_init
- x2sys_list
- x2sys_merge
- x2sys_put
- x2sys_report
- x2sys_solve
- xyz2grd
- mgd77manage
- mgd77convert
- mgd77header
- mgd77info
- mgd77list
- mgd77magref
- mgd77path
- mgd77sniffer
- mgd77track
- legend
- docs
- subplot
- inset
附录
其他
GADM: 全球行政区划数据库
GADM主页:https://gadm.org/
GADM,全称Database of Global Administrative Areas,是一个高精度的全球行政区划数据库。其包含了全球所有国家和地区的国界、省界、市界、区界等多个级别的行政区划边界数据。
警告
GADM提供的中国国界数据不符合中国的领土主张,省界、市界、区界等数据也不一定是最新的版本。在正式刊物中发表使用此类数据的图件时需格外谨慎。
数据下载
GADM提供了两种下载方式:
下载全球所有国家和地区的所有数据 https://gadm.org/download_world.html
由于全球数据量巨大,建议根据需要按照国家下载数据。
需要说明的是,GADM 中对country 的定义为“any entity with an ISO country code”。因而如果想要下载完整的中国数据,实际上需要下载China、Hong Kong、Macao和Taiwan 四个数据。
由于GADM提供的中国国界数据不符合我国领土主张,本文以美国数据为例介绍数据下载及使用。
数据格式及转换
对于每个数据,GADM提供了5种不同的格式:
Geopackage:可以被GDAL/OGR、ArcGIS、QGIS等软件读取
Shapefile:可直接用于ArcGIS等软件
KMZ:可直接在Google Earth中打开
R (sp):可直接用于R语言绘图
R (sf):可直接用于R语言绘图
如果在安装GMT时,GMT已经正确链接了GDAL库,则Shapefile格式的数据可以直接用于绘图。实际绘图时,可能只想要一小部分数据(比如某个省/州的界线),这种情况下,则需要将数据转换成纯文本文件,以方便从数据中提取出需要的部分。
GDAL 的 ogr2ogr 命令可以实现多种地理数据格式之间的互相转换。
下面的示例使用了 GADM v3.6,在 GDAL 2.4.2 和 3.1.2 下测试通过,其它版本的 GDAL 也许用法略有不同。
Geopackage转GMT
以United States数据为例,解压得到文件 gadm36_USA.gpkg
。使用如下命令查看文件的信息:
$ ogrinfo gadm36_USA.gpkg INFO: Open of `gadm36_USA.gpkg' using driver `GPKG' successful. 1: gadm36_USA_2 (Multi Polygon) 2: gadm36_USA_1 (Multi Polygon) 3: gadm36_USA_0 (Multi Polygon)
可以看到Geopackage文件中包含了三个文件,分别是3个不同等级的边界。使用如下命令(注意其中的一对单引号不可省略)将其转换为GMT可识别的格式:
ogr2ogr -f OGR_GMT '' gadm36_USA.gpkg gadm36_USA_0 ogr2ogr -f OGR_GMT '' gadm36_USA.gpkg gadm36_USA_1 ogr2ogr -f OGR_GMT '' gadm36_USA.gpkg gadm36_USA_2
最终得到以 .gmt
结尾的数据3个。
Shapefile转GMT
以 United States 数据为例,将下载的ZIP压缩包解压会得到 gadm36_USA_[012].shp
3组Shapefile数据文件。
使用如下命令即可将Shapefile转换为GMT可识别的格式:
ogr2ogr -f OGR_GMT gadm36_USA_0.gmt gadm36_USA_0.shp ogr2ogr -f OGR_GMT gadm36_USA_1.gmt gadm36_USA_1.shp ogr2ogr -f OGR_GMT gadm36_USA_2.gmt gadm36_USA_2.shp
最终得到以 .gmt
结尾的数据3个。
数据分级
提取得到的数据文件的文件名类似 gadm36_USA_0.gmt
,其中 USA 为国家/地区代码,0 表示行政等级。
以美国数据为例,其数据包含了三个等级:
0级:即国界
1级:即州界
2级:即县界
使用示例
美国本土地图
绘制美国本土地图需要前面提取出的 0 级数据。
gmt plot -JM15c -R-132/-64/23/51 gadm36_USA_0.gmt -png,pdf gadm_level0
绘图效果如下:
美国 1 级行政区划/州界
代码与上面的代码几乎一样,此处使用了美国本土的1级数据。
gmt plot -JM15c -R-132/-64/23/51 gadm36_USA_1.gmt -png,pdf gadm_level1
绘图效果如下:
此处绘制了美国本土48个州的州界数据。如果只想要绘制某个州,可以用文本编辑器打开USA的1级数据文件,在注释行中有清晰地标记出每段数据是哪个州的边界,因而可以很方便地提取出来。
也可以利用如下命令将某个州界从Shapefile中提取出来:
ogr2ogr -f OGR_GMT Alabama.gmt gadm36_USA_1.shp -where "NAME_1 = 'ALABAMA'"
美国 2 级行政区划/县界
2 级数据中包含了美国所有的县级边界。此处以Alabama州为例,用上述方法在USA的2级数据文件中提取该州的州界和县界 Alabama.gmt
,绘图效果如下:
gmt plot -JM10c -R-90/-82/29/37 Alabama.gmt -png,pdf gadm_level2
绘图效果如下:
许可协议
GADM的许可协议 表明该数据可以免费用于学术和非商业用途,可以利用该数据绘制学术出版物的地图,但禁止重新分发或商业用途。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论