- 积分
- 2505
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2012-5-2
- 最后登录
- 1970-1-1
|
发表于 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 |
|