问题描述
Blockquote
在使用rasterio的shp剪切栅格后,我需要将栅格四舍五入到小数点后两位,如何才能做到最好?是否有光栅功能? 我在下面添加了剪切功能。
是否需要设置光栅参数或其他解决方案?
Blockquote
def ClipRaster (POLYIN,RASTERIN):
import numpy
import rasterio
from rasterio.mask import mask
RASTER = rasterio.open(RASTERIN)
# # Visualize raster if needed
# show((RASTERIN),cmap='terrain')
#load shapefile
gdf_crop_extent = gpd.read_file(POLYIN)
# print('crop extent crs: ',gdf_crop_extent.crs)
def getFeatures(gdf):
"""Function to parse features from GeoDataFrame in such a manner that rasterio wants them"""
import json
return [json.loads(gdf.to_json())['features'][0]['geometry']]
crop_shape= getFeatures(gdf_crop_extent)
# Clip the raster with Polygon in proper format
RASTEROUT,out_transform = mask(dataset=RASTER,shapes=crop_shape,crop=True)
# Copy the metadata to new raster
out_meta = RASTER.meta.copy()
# # Parse EPSG code for CRS if needed
# epsg_code = int(gdf_crop_extent.crs['init'][5:])
# print(epsg_code)
# update metadata
#coordinate system can be added if needed,check website at top
out_meta.update({"driver": "AAIGrid","height": RASTEROUT.shape[1],"width": RASTEROUT.shape[2],"transform": out_transform
}
)
return (RASTEROUT,out_meta)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)