在同时使用geopandas和rasterio的情况下,在调用顺序上,前者必须放在后者的前面,同时还有gdal的时候放最后,也就是
import geopandas
import rasterio
import gdal
不这样,肯定会报错
Traceback (most recent call last):
File ".\zonal.py", line 13, in <module>
shp_driver = pd.read_file(shp_path)
File "D:\software\Anaconda3\lib\site-packages\geopandas\io\file.py", line 140, in _read_file
f_filt, crs=crs, columns=columns + ["geometry"]
File "D:\software\Anaconda3\lib\site-packages\geopandas\geodataframe.py", line 427, in from_features
"geometry": shape(feature["geometry"]) if feature["geometry"] else None
File "D:\software\Anaconda3\lib\site-packages\shapely\geometry\geo.py", line 105, in shape
return Polygon(ob["coordinates"][0], ob["coordinates"][1:])
File "D:\software\Anaconda3\lib\site-packages\shapely\geometry\polygon.py", line 243, in __init__
ret = geos_polygon_from_py(shell, holes)
File "D:\software\Anaconda3\lib\site-packages\shapely\geometry\polygon.py", line 509, in geos_polygon_from_py
ret = geos_linearring_from_py(shell)
File "shapely\speedups\_speedups.pyx", line 408, in shapely.speedups._speedups.geos_linearring_from_py
ValueError: GEOSGeom_createLinearRing_r returned a NULL pointer