【发布时间】:2021-05-08 03:17:26
【问题描述】:
我有两个文件。一个是 PNG,另一个是 TIFF(或 .jp2)。我想从卫星图像(.jp2 或 .tif)中读取地理空间数据并将其“放入”png 文件,然后将其另存为新的 tif。
我对使用栅格数据非常陌生。我正在使用 rasterio,到目前为止,我已经设法获得了 tif 文件的元数据:
import rasterio as rio
tif = rio.open("TIFFile.tif")
png = rio.open("PNGFile.png")
tif_read = tif.read()
png_read = png.read()
tif_width = tif.width
tif_height = tif.height
tif_dim = (tif_width, tif_height)
png_width = png.width
png_height = png.height
png_dim = (png_width, png_height)
tif_meta = tif.meta
png_meta = png.meta
print("TIF META: ", tif_meta)
print("PNG META: ", png_meta)
输出:
TIF META: {'driver': 'GTiff', 'dtype': 'float32', 'nodata': None, 'width': 10980, 'height': 10980, 'count': 4, 'crs': CRS.from_epsg(32635), 'transform': Affine(10.0, 0.0, 699965.0,
0.0, -10.0, 4100035.0)}
PNG META: {'driver': 'GTiff', 'dtype': 'float32', 'nodata': None, 'width': 5490, 'height': 5490, 'count': 1, 'crs': None, 'transform': Affine(1.0, 0.0, 0.0,
0.0, 1.0, 0.0)}
我知道我可以像这样使用原始 tif 的元数据创建一个新的 tif 文件:
with rio.open('NEWTIF.tif', 'w', **tif_meta) as dst:
dst.write(tif_read.astype(rio.float32))
鉴于此,基本上,我想知道如何创建一个新的 tif 文件,将另一个 tif 的元数据添加到 png 文件中 - 将 png 的栅格数据与 tif 的地理空间数据合并。
我一直在寻找这个,但无法理解我在 SO: 中找到了什么:
How to convert png files to geotiff https://gis.stackexchange.com/questions/371065/apply-same-coordinate-system-to-raster-image-and-geojson-with-rasterio https://gis.stackexchange.com/questions/379027/georeferencing-of-png-and-convert-to-tiff-using-python
如何做到这一点?
【问题讨论】:
标签: python tiff gdal rasterio satellite-image