✍️ 田冬冬 , 刘珠妹 , 姚家园 • 📅 2024-09-10

# GADM: 全球行政区划数据库

GADM主页：https://gadm.org/

GADM，全称Database of Global Administrative Areas，是一个高精度的全球行政区划 数据库。其包含了全球所有国家和地区的国界、省界、市界、区界等多个级别的行政区划边界数据。

警告

GADM提供的中国国界数据不符合中国的领土主张，省界、市界、区界等数据也不一定 是最新的版本。在正式刊物中发表使用此类数据的图件时需格外谨慎。

## 数据下载

GADM提供了两种下载方式：

1. 下载全球所有国家和地区的所有数据 https://gadm.org/download_world.html

2. 按国家下载 https://gadm.org/download_country_v3.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的许可协议 表明该数据可以免费用于学术 和非商业用途，可以利用该数据绘制学术出版物的地图，但禁止重新分发或商业用途。