python绘制中国省界地图_利用python绘制中国地图(含省界、河流等)

本文介绍了如何使用Python的Basemap库绘制中国地图,包括海岸线、国界、河流和省界。通过指定经纬度范围,添加drawcoastlines(), drawcountries(), drawrivers()等方法,并结合shape文件绘制省界,最终实现详细的地图展示。" 129301315,12556445,毫米波雷达与视觉融合技术在自动驾驶中的应用,"['自动驾驶', '计算机视觉', '目标检测', '人工智能', '数据融合']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们可以使用Basemap这个工具包来实现中国地图的绘制

首先需要加载一些包:

import numpy as np

import matplotlib.pyplot as plt

from mpl_toolkits.basemap import Basemap

Basemap包就是气象画图的利器,现在我们就可以愉快的画图了!

plt.figure(1)

map=Basemap()

map.drawcoastlines()

plt.title(r'$World\ Map$',fontsize=24)

plt.show()

第2行创建一个地图,第3行添加海岸线,这样一个世界地图就出来了,怎么样,很简单吧。(plt.show()这行代码是用来显示图片的)

a104e5528e49f04442d821269066bc8f.png

我们发现这只是海岸线图,那么怎么将国界线添加上去呢?很简单,只要添加一行代码就可以了。

map.drawcountries()

adf01c6f57d3189272ee51a8b6f1137e.png

那么怎么添加河流呢?可能有些同学已经猜到了,就是drawrivers()

map.drawrivers(color='blue',linewidth=0.3)

e2002758e2222bd03d2b98a0c438f1ee.png

好了,现在我们可以开始画中国地图了!

其实只要在创建地图时指定一下范围就可以了,查阅资料发现,中国的经纬度范围是东经135度2分30秒-东经73度40分,北纬3度52分-北纬53度33分。

map=Basemap(llcrnrlon=70,llcrnrlat=3,urcrnrlon=139,urcrnrlat=54)

a694f9be3703b520687fc458fea8e8c7.png

好了,一个中国地图就出来了!但是我们发现,好像少了点什么,没错就是省界。我们可以在https://gadm.org/download_country_v3.html下载中国大陆和台湾省的行政区域的shape文件,下载后解压,然后加入下面的代码。

CHN='G:\python_material\MapOfChina'

CHN的值就是解压后的地图文件所在的地址。

下面我们就可以加入省界了!

map.readshapefile(CHN+'\gadm36_CHN_shp\gadm36_CHN_1',

'states',drawbounds=True)

别忘了把台湾省加上去

map.readshapefile(CHN+'\gadm36_TWN_shp\gadm36_TWN_1',

'taiwan',drawbounds=True)

ccb07e2b06d963ffff6f0db4bcba6a8f.png

还可以在地图上加上经纬度,比如我们要画5条经纬线,可以这么做:

parallels = np.linspace(3,55,5)

map.drawparallels(parallels,labels=[True,False,False,False])

meridians = np.linspace(70,140,5)

map.drawmeridians(meridians,labels=[False,False,False,True])

07e26f7fc40dc2bcb71ddd45be962bec.png

大功告成!但是,emmm,我们发现好像有点歪?我们可以在创建地图时选择投影参数。

map=Basemap(llcrnrlon=70,llcrnrlat=3,urcrnrlon=137,urcrnrlat=54,

projection = 'lcc', lat_1 = 33, lat_2 = 45, lon_0 = 100)

5df759efe8281210d3511559c51a2358.png

这回正式的完成了!

附上所有代码:

import numpy as np

import matplotlib.pyplot as plt

from mpl_toolkits.basemap import Basemap

plt.figure(1)

map=Basemap(llcrnrlon=70,llcrnrlat=3,urcrnrlon=139,urcrnrlat=54,

projection = 'lcc', lat_1 = 33, lat_2 = 45, lon_0 = 100)

map.drawcoastlines()

map.drawcountries()

map.drawrivers(color='blue',linewidth=0.3)

CHN='G:\python_material\MapOfChina'

map.readshapefile(CHN+'\gadm36_CHN_shp\gadm36_CHN_1',

'states',drawbounds=True)

map.readshapefile(CHN+'\gadm36_TWN_shp\gadm36_TWN_1',

'taiwan',drawbounds=True)

parallels = np.linspace(3,55,5)

map.drawparallels(parallels,labels=[True,False,False,False])

meridians = np.linspace(70,140,5)

map.drawmeridians(meridians,labels=[False,False,False,True])

plt.title(r'$China\ Map$',fontsize=24)

plt.show()

以上就是利用python绘制中国地图的详细内容,更多关于python 绘制地图的资料请关注聚米学院其它相关文章!

在使用WRF (Weather Research and Forecasting) 数据进行分析时,特别是读取`wrfout`格点数据并在Python中(如使用`matplotlib`、`cartopy`等库)绘制地图,添加国界线和省界线通常涉及以下几个步骤: 1. **安装所需库**: - `matplotlib`: 用于基本的绘图 - `cartopy`: 提供地理坐标系统支持以及地图投影功能 - `geopandas` 或 `shapely`: 可以加载和处理地理边界数据 ```bash pip install matplotlib cartopy geopandas shapely ``` 2. **加载数据**: - 使用`pandas`读取`wrfout`文件的数据部分 - 如果需要地图信息,可以下载世界轮廓数据(`world.shp` or `ne_10m_admin_0_countries.shp`)。 ```python import pandas as pd from netCDF4 import Dataset # 从wrfout文件中获取数据 wrf_dataset = Dataset('wrfout_d01.nc') data_array = wrf_dataset.variables['your_variable'][:] # 使用geopandas加载行政区划数据 gdf = gpd.read_file(gpkg_path) ``` 3. **设置地图基础**: - 创建`cartopy`的地图投影,并将它绑定到地图上 - 添加经纬度轴 ```python import cartopy.crs as ccrs fig = plt.figure(figsize=(10, 6)) ax = fig.add_subplot(1, 1, 1, projection=ccrs.PlateCarree()) ``` 4. **添加边界**: - 使用`geopandas`将行政区域数据加到地图上 - 将边界的颜色、宽度等属性设置好 ```python ax.add_geometries(gdf.geometry, crs=ccrs.PlateCarree(), facecolor='none', edgecolor='black', linewidth=1) ``` 5. **数据可视化**: - 将WRF数据在地图上呈现,可能是散点图、等值线或其他形式 ```python cs = ax.pcolormesh(x, y, data_array, cmap='jet', transform=ccrs.PlateCarree()) ``` 6. **保存和显示结果**: ```python fig.colorbar(cs, ax=ax) plt.title('Your Title') plt.show() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值