运行时错误:b'初始化列表中没有参数':

2024-04-27 07:44:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图通过给出坐标来裁剪光栅图像。但是我得到了这个“初始化列表中没有参数”:“错误。我尝试升级我的geopandas,pryproj,但错误不会消失。我使用的是python 3.7

import rasterio
from rasterio.plot import show
from rasterio.plot import show_hist
from rasterio.mask import mask
from shapely.geometry import box
import geopandas as gpd
from fiona.crs import from_epsg
import pycrs
fp = r"C:\image\newclip.tif"
out_tif = r"C:\image\clip1.tif"
data = rasterio.open(fp)
minx,miny=690076.98307887,690969.18072700
maxx,maxy=1870765.691210,1871243.7886839
bbox =box(minx, miny, maxx, maxy)
geo = gpd.GeoDataFrame({'geometry': bbox}, index=[0],crs=from_epsg(4326))
geo = geo.to_crs(crs=data.crs.data)
def getFeatures(gdf):
    import json
    return [json.loads(gdf.to_json())['features'][0]['geometry']]
coords = getFeatures(geo)
print(coords)
out_img, out_transform = mask(raster=data, shapes=coords, crop=True)
out_meta = data.meta.copy()
epsg_code = int(data.crs.data['init'][5:])
out_meta.update({"driver": "GTiff","height": out_img.shape[1],"width": out_img.shape[2],"transform": out_transform,"crs": pycrs.parser.from_epsg_code(epsg_code).to_proj4()})
with rasterio.open(out_tif,'w',**out_meta) as new:
     new.write(out_img)

Tags: tofromimportjsonimgdatamaskout