如何解决写回高清时,Python rasterio 将所有反射率值替换为 1024 或 4096 的剪裁的 Sentinel 2 蓝带
我尝试将 Sentinel 2 卫星图像的蓝色带剪辑到 python 和 rasterio 中的特定多边形。 剪辑过程似乎工作正常,但是当我将剪辑数据写入文件时 然后再次读取所有反射率值。
import fiona
import rasterio
from rasterio.mask import mask
aoiFile = fiona.open('AOI.shp')
aoiGeom = [aoiFile[0]['geometry']]
rasterBand = rasterio.open('T33UUU_20180716T102019_B02_20m.jp2')
outImage,outTransform = mask(rasterBand,aoiGeom,crop=True)
outMeta = rasterBand.meta
outMeta.update({"driver": 'JP2OpenJPEG',"height": outImage.shape[1],"width": outImage.shape[2],"transform": outTransform})
outRaster = rasterio.open('clipped_blue.jp2',"w",**outMeta)
outRaster.write(outImage)
outRaster.close()
print('clipped data from memory:')
print(outImage)
fileBlue = rasterio.open('clipped_blue.jp2').read(1)
print('')
print('clipped data from file:')
print(fileBlue)
结果:
clipped data from memory:
[[[ 0 0 0 0]
[ 0 0 938 992]
[ 0 970 980 909]
[ 0 859 941 0]
[ 0 742 936 0]
[ 0 867 927 0]
[ 0 833 914 0]
[ 0 864 911 0]
[ 0 867 894 0]
[ 0 860 867 0]
[ 0 738 786 0]]]
clipped data from file:
[[ 0 0 0 0]
[ 0 0 1024 1024]
[ 0 1024 1024 1024]
[ 0 1024 1024 0]
[ 0 1024 1024 0]
[ 0 1024 1024 0]
[ 0 1024 1024 0]
[ 0 1024 1024 0]
[ 0 1024 1024 0]
[ 0 1024 1024 0]
[ 0 1024 1024 0]]
shp 文件的坐标(变量 aoiGeom 的内容,用于复制目的):
aoiGeom = [{'type': 'Polygon','coordinates': [[(359678.6200014538,5820575.770123939),(359686.5900014533,5820691.660123938),(359692.7600014533,5820769.850123939),(359734.89000145276,5820768.14012394),(359723.090001453,5820641.480123938),(359718.180001453,5820566.930123939),(359711.2000014535,5820565.860123939),(359682.0900014534,5820568.83012394),(359678.6200014538,5820575.770123939)]]}]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。