概述
import numpy as np
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import cartopy.feature as cfeature
from cartopy.mpl.gridliner import LONGITUDE_FORMATTER, LATITUDE_FORMATTER
#中国行政区域数据来源GMT中文社区:https://docs.gmt-china.org/latest/dataset-CN/CN-border/
# 读取坐标数据
with open(r'D:GMTdatachina-geospatial-data-GB2312CN-border-La.gmt') as src:
context = src.read()
blocks = [cnt for cnt in context.split('>') if len(cnt) > 0]
borders = [np.fromstring(block, dtype=float, sep=' ') for block in blocks]
#设置画图参数
fig = plt.figure(figsize=[12, 8])
ax = plt.axes(projection=ccrs.PlateCarree())
# ax = plt.axes(projection=ccrs.LambertConformal(central_latitude=90,central_longitude=105))
#画海洋、陆地、河流、湖泊
ax.add_feature(cfeature.OCEAN.with_scale('50m'))
ax.add_feature(cfeature.LAND.with_scale('50m'))
ax.add_feature(cfeature.RIVERS.with_scale('50m'))
ax.add_feature(cfeature.LAKES.with_scale('50m'))
#绘制国界、省界、十段线、海南诸岛数据
for line in borders:
ax.plot(line[0::2], line[1::2], '-', color='gray',transform=ccrs.Geodetic())
# 画经纬度网格
gl = ax.gridlines(draw_labels=True, linewidth=1, color='k', alpha=0.5, linestyle='--')
gl.xlabels_top = False #关闭顶端标签
gl.ylabels_right = False #关闭右侧标签
gl.xformatter = LONGITUDE_FORMATTER #x轴设为经度格式
gl.yformatter = LATITUDE_FORMATTER #y轴设为纬度格式
ax.set_extent([80, 130, 13, 55])
plt.show()
最后
以上就是失眠信封为你收集整理的python cartopy绘制中国区域(包含国界、省界、十段线以及海南诸岛)的全部内容,希望文章能够帮你解决python cartopy绘制中国区域(包含国界、省界、十段线以及海南诸岛)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复