爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
楼主: jl2587t

[经验总结] python读取shp地图文件

  [复制链接]

新浪微博达人勋

发表于 2023-6-2 20:37:45 | 显示全部楼层
海南省地市和县域地图有吗?609760344@qq.com
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2023-6-18 20:41:31 | 显示全部楼层
请问有全国各省各市的地图吗,谢谢。505753459@qq.com
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2023-11-7 16:42:55 | 显示全部楼层
楼主,这里也需要一份云南省地市和县域地图!十分感谢
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2023-11-9 15:52:09 | 显示全部楼层
LiSUE 发表于 2023-11-7 16:42
楼主,这里也需要一份云南省地市和县域地图!十分感谢

15261822037@163.com
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2023-12-29 10:03:35 | 显示全部楼层
感谢楼主分享
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2024-3-5 09:28:54 | 显示全部楼层
您好 麻烦问下各国边界文件country1.shp文件有么?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2024-3-5 09:32:42 | 显示全部楼层
leyutianzi 发表于 2024-3-5 09:28
您好 麻烦问下各国边界文件country1.shp文件有么?

已从帖子中下到国家的 谢谢
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2024-4-28 21:51:16 | 显示全部楼层
作者大大 我用了你的代码 如果不要最后这个for循环他就填色全部子图,超出我想要的范围外,但是如果又加了这个for循环他就整个子图不填色了 我真的有点搞不懂 能麻烦解答一下吗?谢谢啦,附代码:
################右场####################
f1_ax2 = fig1.add_axes([0.65, 0.6, 0.5, 0.5], projection=ccrs.PlateCarree(central_longitude=104))
f1_ax2.add_geometries(shpreader.Reader('Map/south_west/自定义.shp').geometries(), ccrs.PlateCarree(), facecolor='none', edgecolor='k', linewidth=0.5)  # 地理信息
leftlon, rightlon, lowerlat, upperlat = (97, 110.3, 21, 34.4)
img_extent = [leftlon, rightlon, lowerlat, upperlat]
b = contour_map(f1_ax2, img_extent,2, 2)
f1_ax2.set_title('1st pattern of right', loc='center', fontsize=18)
f1_ax2.set_title('(b)', loc='left', fontsize=18)
c2 = f1_ax2.contourf(pre_lon, pre_lat, moulde[0]['right'][:,:,0], zorder=0, extend='both', levels=np.arange(-0.3,0.4,0.1), transform=ccrs.PlateCarree(), cmap=plt.cm.RdBu_r)
cbar2 = fig1.colorbar(c2, ax=f1_ax2, orientation='vertical', fraction=0.05, pad=0.05)
################掩膜####################
sf = shapefile.Reader('Map/south_west/自定义.shp')
shapes = sf.shapes()
codes = []
pts = shapes[0].points     #边界点
x,y = zip(*pts)#把经纬度分别给到x,y
prt = list(shapes[0].parts) + [len(pts)]  #区块起始索引
for i in range(len(prt) - 1):
    codes += [Path.MOVETO]     #点移动
    codes += [Path.LINETO] * (prt[i+1] - prt[i] -2)#画线
    codes += [Path.CLOSEPOLY] #这块画完,循环结束,下一块
clip = Path(pts, codes)  #利用数据和路径生成一个画图动作
clip = PathPatch(clip, transform=f1_ax2.transData) #再加入ax的变换'''
for contour in f1_ax2.collections:
        contour.set_clip_path(clip)
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表