【可视化】绘制中国标准行政区划地图(2024版)
创作时间:
作者:
@小白创作中心
【可视化】绘制中国标准行政区划地图(2024版)
引用
CSDN
1.
https://m.blog.csdn.net/m0_38065162/article/details/141606151
在科研投稿论文过程中,多数期刊杂志要求我们制作涉及国界的图件,必须使用自然资源部地图技术审查中心发布的标准地图底图。凡涉国界图件(国内部分地区、全国、世界部分地区、全球)必须使用自然资源部标准地图服务系统或国家测绘局地理信息局标准地图底图,所用底图边界要完全无修改(包括南海诸岛位置)。本文结合Geopandas和Cartopy两个强大的地理数据处理库进行展示。
相关库简介
Cartopy是一个用于地理数据处理和可视化的Python库,专门设计来处理地图投影和地理空间数据的绘制。它是基于Matplotlib的高层次接口,主要用于创建地理参考图形和地图。Cartopy提供了丰富的功能来处理不同的地图投影、地理参考数据的转换,以及与流行的地理信息系统(GIS)数据格式的集成。
代码实现
导入相关库
# -*- coding: UTF-8 -*-
# 导入相关库
import numpy as np
import xarray as xr
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import cartopy.feature as cfeature
from copy import copy
from cartopy.mpl.gridliner import LATITUDE_FORMATTER, LONGITUDE_FORMATTER
import shapely.geometry as sgeom
加载数据
国家地理信息公共服务平台(天地图)新增了矢量地图底图下载服务,用户可以根据需求下载不同审图号的标准地图矢量底图。矢量地图相较于像素地图,具有更高的清晰度和可编辑性,可以无限放大而不失真,更适合进行地图编辑和二次创作。获取方式见-天地图。
读取中国区域的省、市、县的区划信息:
# 读取省级行政区划
province = gpd.read_file('中国_省.geojson')
# 读取市级行政区划
city = gpd.read_file('中国_市.geojson')
# 读取县级行政区划
county = gpd.read_file('中国_县.geojson')
市级行政区划展示
# 设置地图投影
proj = ccrs.LambertConformal(central_longitude=105, central_latitude=90,standard_parallels=(25, 47))
# 设置图片大小
fig = plt.figure(figsize=[10, 8],frameon=True)
# Set projection and plot the main figure
ax = fig.add_axes([0.08, 0.05, 0.8, 0.94], projection=proj)
# 设置地图范围
ax.set_extent([80, 130, 15, 55],crs=ccrs.PlateCarree())
# 添加地理要素
ax.add_geometries(city.geometry,
crs=ccrs.PlateCarree(),
edgecolor='k',
facecolor='none',
zorder=1)
# 添加海洋、陆地、河流、湖泊
ax.add_feature(cfeature.OCEAN.with_scale('50m'),zorder=0)
ax.add_feature(cfeature.LAND.with_scale('50m'),zorder=0)
ax.add_feature(cfeature.RIVERS.with_scale('50m'),zorder=0)
ax.add_feature(cfeature.LAKES.with_scale('50m'),zorder=0)
# 设置并添加经纬度标签
xticks = [55, 65, 75, 85, 95, 105, 115, 125, 135, 145, 155, 165]
yticks = [0 , 5 , 10, 15, 20, 25 , 30 , 35 , 40 , 45 , 50 , 55 , 60 , 65]
gl = ax.gridlines(xlocs=xticks,
ylocs=yticks,
draw_labels=True,
x_inline=False,
y_inline=False,
linewidth=1,
color='dimgrey',
alpha=0.5,
linestyle='--')
gl.top_labels = False
gl.right_labels = False
gl.xformatter = LONGITUDE_FORMATTER
gl.yformatter = LATITUDE_FORMATTER
# 添加南海附图
sub_ax = fig.add_axes([0.75, 0.102, 0.15, 0.2],
projection=ccrs.LambertConformal(central_latitude=90,
central_longitude=105))
# 添加海洋、陆地、河流、湖泊
sub_ax.add_feature(cfeature.OCEAN.with_scale('50m'))
sub_ax.add_feature(cfeature.LAND.with_scale('50m'))
sub_ax.add_feature(cfeature.RIVERS.with_scale('50m'))
sub_ax.add_feature(cfeature.LAKES.with_scale('50m'))
# 设置南海附图范围
sub_ax.set_extent([106, 120, 2, 24], crs=ccrs.PlateCarree())
sub_ax.add_geometries(city.geometry, crs=ccrs.PlateCarree(), edgecolor='k', facecolor='none')
plt.show()
结果展示
市级行政区划底图
作为展示,本文只展示了市级行政区划的底图,大家可以替换数据进行省、县级的行政区划展示。
热门推荐
拉肚子检查哪些项目
如何在团队会议中进行有效发言?十大要点助你提升会议效率
Steam十大恐怖游戏盘点:从心理惊悚到生存恐怖
如何查阅高分文献数据库
区块链行业媒体排行哪个最权威?
中越跨境游持续火热,沉浸式投影以科技提升旅游体验
拉萨穿什么衣服?攻略指南
招标中的项目需求如何写
AI时代的中国企业:六大战略路径解析
企业注销后如何处理债务:相关法律规定与操作指南
红颜知己是什么意思?
农民工返乡创业与就业机会
银行的员工服务规范有哪些?
数字人如何进行直播赚钱
“单位工程、单项工程、分部工程、分项工程”你分清了吗?
南昌楼市行情持续回暖 2024年二手房成交量同比上升22%
土豆饼空气炸锅减肥(土豆饼空气炸锅减肥能吃吗)
参加学术会议穿什么衣服
《周易占卜疾病吉凶:揭秘古法测病奥秘》
逆水寒手游萌新入门指南:从服务器选择到副本挑战全攻略
九寨沟旅游穿衣攻略:全面指南,游玩必备衣物搭配
沙库巴曲缬沙坦钠药物相互作用是什么
成人礼传统与现代的法律视角
余承东妻子周芳:从普通工薪家庭女孩到职场女强人的蜕变之路
原子核里的精确时间
科学家成功展示核钟所有关键技术,超精确计时未来可期
含钌废料有哪些?如何从钌废料回收利用
掌握财经脉搏,了解每日财经新闻播报的最佳时间
一年级班级文化建设方案怎么设计?
国家喊你减肥了,还在等什么?