首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >全流程 | 最快得到带有审图号的地图文件并叠加雷达回波

全流程 | 最快得到带有审图号的地图文件并叠加雷达回波

作者头像
气象学家
发布2026-05-29 12:12:54
发布2026-05-29 12:12:54
1220
举报
文章被收录于专栏:气象学家气象学家

需求:编辑部经常要求,要提供底图来源,在论文中注明 “文中涉及的地图是基于中华人民共和国自然资源部地图技术审查中心标准地图服务系统下载的审图号为XXXX的中国地图(世界地图)制作,底图无修改”。

这篇文章分享下如何最快得到带有审图号的shp文件,并叠加雷达回波。

具体步骤:

(一)下载地图数据,并迅速转化成shp文件。

1.在浏览器上搜索【天地图】,进入【天地图 · 服务中心】。
2.点击进入到【服务中心控制台】后,点击”数据可视化“下方的【开始制作】
3.在【数据资源共享】中点击【行政区域可视化】
4.注册或登录后,界面就会跳转到行政区域文件下载界面。

这里可以看到,地图文件是有审图号的,选择好你所需的地区,和需要的层级(省、市、县)。这里只能下载GeoJSON格式文件,举例下载湖南省各市的GeoJSON格式文件。

5.直接搜索网址https://mapshaper.org/

跳转后点击按钮【select】,选择刚下载好的GeoJSON格式文件。

6.点击右上角【Export】,选择【shapefile】后点击【Export】导出即可。
7.文件以压缩包的形式导出到指定路径。

(二)叠加雷达回波

1.在PyCINRAD库中操作,要用1.9.3版本,否则下列操作不成功。

注意:PPI模块中参数add_shps=False 是指关闭cinrad自带底图,如果要保留,则设置为True

代码语言:javascript
复制
#导入相关库
from cinrad.io import StandardData
from cinrad.visualize import PPI
#读取基数据文件
f=StandardData("D:/Z_RADR_I_Z9731_20210510070930_O_DOR_SAD_CAP_FMT.BIN.bz2")
data=f.get_data(2,230,'REF')

#开始画图,绘制白色底图。
#add_shps=False表示关闭PPI自带的地图底图,完全用自己的shp文件来绘制底图。
fig = PPI(
    data, 
    dpi=300, 
    add_city_names=True,#显示市县名称
    plot_labels=True,
    extent=[109, 116, 25, 31],
    style='white',
    add_shps=False #关闭cinrad底图
)
#叠加自己的shp文件
border_file=r'D:/审图号:GS(2024)0650号/湖南省_市.shp'
fig.add_custom_shp(border_file, encoding="gbk", color="red",linewidth=1)

效果图:

2.在Py-ART中操作。

注意:plot_ppi_map模块中设置embellish=False关闭Py-ART自带的底图,如果不用关闭,则设置为True。设置自己的shp文件路径shapefile=XXX.shp'

代码语言:javascript
复制
#导入所需的库
import pyart
from cinrad.io import StandardData
from cinrad.visualize import PPI
from cinrad.io.export import standard_data_to_pyart
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import matplotlib as mpl

#读取数据
f=StandardData("D:/Z_RADR_I_Z9731_20210510070930_O_DOR_SAD_CAP_FMT.BIN.bz2")

#转换成pyart格式
radar=standard_data_to_pyart(f)

#采用pyart.graph.RadarMapDisplay模块生成显示对象
display=pyart.graph.RadarMapDisplay(radar)

#在地图上绘制雷达回波图像
fig=plt.figure(figsize=(12,8),dpi=600)

#投影设置为等经纬度投影
ax=fig.add_subplot(111,projection=ccrs.PlateCarree())
#选择绘制1.5°仰角(序号2)的水平反射率因子PPI图像,画上指定纬度的网格线,采用自己的底图时需要设置embellish=False,然后设置shp文件路径shapefile='C:/审图号:GS(2024)0650号/湖南省_市.shp'
display.plot_ppi_map('reflectivity',2,ax=ax,
                     title='',
                     vmin=-5,vmax=75,
                     lat_lines=[25,27,29,31], 
                     lon_lines=[110,112,114,116],
                     resolution='10m',
                     embellish=False,
                     colorbar_label='反射率因子/dBZ',
                     projection=ccrs.PlateCarree(),
                     shapefile='C:/审图号:GS(2024)0650号/湖南省_市.shp',
                     shapefile_kwargs={
                    'facecolor': 'none',
                    'edgecolor': 'gray',
                    'linewidth': 0.5
                },)
plt.show()

效果图:

3.在PyCWR中操作,没有找到PyCWR能关闭自带的地图底图的方法,只能作叠加。
代码语言:javascript
复制
#导入所需的库
from pycwr.draw import plot_ppi_map
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import geopandas as gpd
from pycwr.io import read_auto

#读取雷达基数据文件,并显示雷达数据结构
file= r"D:/Z_RADR_I_Z9731_20210510070930_O_DOR_SAD_CAP_FMT.BIN.bz2"
radar = read_auto(file)
#绘制地图
# show=False 因为不能让马上弹窗,否则后面的 shp 画不上去
plot_ppi_map(radar, field="dBZ", sweep=0, show=False)
# 获取刚才被 plot_ppi_map 自动创建的当前坐标轴 
ax = plt.gca()
# 读取shp数据
gdf = gpd.read_file('D:/审图号:GS(2024)0650号/湖南省_市.shp')
# 绘制shp
ax.add_geometries(gdf.geometry, crs=ccrs.PlateCarree(),
                    facecolor='none', edgecolor='red', linewidth=1.5)
plt.show()

效果图:

是的,再强调一下:

PyCINRAD和PyART两者既可以在原底图上叠加自己的shp,也可以完全关闭原底图,只显示自己的shp作为底图。但我没有找到PyCWR能关闭自带的地图底图的方法,只能作叠加。

END

声明:欢迎转载、转发。气象学家公众号转载信息旨在传播交流,其内容由作者负责,不代表本号观点。文中部分图片来源于网络,如涉及内容、版权和其他问题,请联系小编处理。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-05-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 气象学家 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • (一)下载地图数据,并迅速转化成shp文件。
    • 1.在浏览器上搜索【天地图】,进入【天地图 · 服务中心】。
    • 2.点击进入到【服务中心控制台】后,点击”数据可视化“下方的【开始制作】
    • 3.在【数据资源共享】中点击【行政区域可视化】
    • 4.注册或登录后,界面就会跳转到行政区域文件下载界面。
    • 5.直接搜索网址https://mapshaper.org/
    • 6.点击右上角【Export】,选择【shapefile】后点击【Export】导出即可。
    • 7.文件以压缩包的形式导出到指定路径。
  • (二)叠加雷达回波
    • 1.在PyCINRAD库中操作,要用1.9.3版本,否则下列操作不成功。
    • 2.在Py-ART中操作。
    • 3.在PyCWR中操作,没有找到PyCWR能关闭自带的地图底图的方法,只能作叠加。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档