爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
楼主: jl2587t

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

  [复制链接]

新浪微博达人勋

发表于 2021-10-13 22:11:51 | 显示全部楼层
你好,为啥我在绘制浙江省地图的时候没法正确白化,直接全图变白,其他省都ok
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-10-15 20:13:02 | 显示全部楼层
Jinne 发表于 2021-10-13 22:11
你好,为啥我在绘制浙江省地图的时候没法正确白化,直接全图变白,其他省都ok

{:eb513:}不知道
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-10-26 16:13:07 | 显示全部楼层
import numpy as np
import xarray as xr
import cartopy.crs as ccrs
import cartopy.feature as cfeat
from cartopy.mpl.gridliner import LONGITUDE_FORMATTER, LATITUDE_FORMATTER
from cartopy.io.shapereader import Reader
import matplotlib.pyplot as plt
import matplotlib.ticker as mticker
import maskout
from cartopy.mpl.ticker import LongitudeFormatter, LatitudeFormatter
shp_path='/home/yuejun0026/shp/Sichuan/Sichuan_city.shp'
proj= ccrs.PlateCarree()  # 简写投影
fig = plt.figure(figsize=(4, 4), dpi=400)  # 创建画布
ax = fig.subplots(1, 1, subplot_kw={'projection': proj})  # 创建子图
extent=[96,110,26,35]#限定绘图范围
reader = Reader(shp_path)
sichuancity = cfeat.ShapelyFeature(reader.geometries(), proj, edgecolor='k', facecolor='none')
ax.add_feature(sichuancity, linewidth=0.7)#添加市界细节
ax.set_extent(extent, crs=proj)

大佬  不知道你在使用shp文件过程中有没有遇到这个情况勒?前面的是我的程序
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-4-ad6d726e4bd0> in <module>
      1 extent=[96,110,26,35]#限定绘图范围
      2 reader = Reader(shp_path)
----> 3 enshicity = cfeat.ShapelyFeature(reader.geometries(), proj, edgecolor='k', facecolor='none')
      4 ax.add_feature(enshicity, linewidth=0.7)#添加市界细节
      5 ax.set_extent(extent, crs=proj)

~/miniconda3/envs/python/lib/python3.8/site-packages/cartopy/feature/__init__.py in __init__(self, geometries, crs, **kwargs)
    219         """
    220         super(ShapelyFeature, self).__init__(crs, **kwargs)
--> 221         self._geoms = tuple(geometries)
    222
    223     def geometries(self):

~/miniconda3/envs/python/lib/python3.8/site-packages/cartopy/io/shapereader.py in geometries(self)
    167             # Skip the shape that can not be represented as geometry.
    168             if shape.shapeType != shapefile.NULL:
--> 169                 yield sgeom.shape(shape)
    170
    171     def records(self):

~/miniconda3/envs/python/lib/python3.8/site-packages/shapely/geometry/geo.py in shape(context)
     91     True
     92     """
---> 93     if hasattr(context, "__geo_interface__"):
     94         ob = context.__geo_interface__
     95     else:

~/miniconda3/envs/python/lib/python3.8/site-packages/shapefile.py in __geo_interface__(self)
    507
    508         else:
--> 509             raise Exception('Shape type "%s" cannot be represented as GeoJSON.' % SHAPETYPE_LOOKUP[self.shapeType])
    510
    511     @staticmethod

KeyError: -1091265284
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-11-3 15:02:11 | 显示全部楼层
求一份各省shp文件,需要精确到市县的,麻烦楼主了。786535492@qq.com
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-11-4 20:01:11 | 显示全部楼层
Jinne 发表于 2021-10-13 22:11
你好,为啥我在绘制浙江省地图的时候没法正确白化,直接全图变白,其他省都ok

这个我不清楚哎,不行你就看看我的代码,套用一下,我画过浙江的
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-11-8 16:32:54 | 显示全部楼层
求吉林省的SHP,能精确到市县的更好,麻烦楼主了,谢谢!。460738506@qq.com
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-11-9 19:37:20 | 显示全部楼层
□_□ 发表于 2021-11-8 16:32
求吉林省的SHP,能精确到市县的更好,麻烦楼主了,谢谢!。

给你了
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-11-11 10:12:47 | 显示全部楼层

谢谢!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-11-18 15:49:05 | 显示全部楼层
您好,全国各省市shp文件可以分享一下嘛,谢谢
邮箱:Xxxxuena@163.com
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-11-19 06:40:58 | 显示全部楼层
那那耶 发表于 2021-11-18 15:49
您好,全国各省市shp文件可以分享一下嘛,谢谢
邮箱:

发给你啦
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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