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)