[英]Rasterio equivalent for GDAL's GetProjection() and GetGeoTransform()?
我有一個 GeoTIFF,我在 OpenCV 中做了很多處理。 處理后,它丟失了它的空間信息,所以我需要將它重新插入。在 GDAL 中,我會在處理之前從原始圖像中提取它,然后將其與后處理的圖像一起推回,如下所示:
#open original geotiff
original_img = gdal.Open('/path-to-file/original_img.tif', 1)
crs = original_img.GetProjection()
gt = original_img.GetGeoTransform()
del original_ds
#open cv processes here....write post-processed file
# open processed raster and set the projection and geotransform
img = gdal.Open('/path-to-file/processed_img.tif', 1)
img.SetProjection(crs)
img.SetGeoTransform(gt)
有沒有辦法在 Rasterio 中做到這一點?
根據RasterIO 文檔,您可以簡單地訪問開放數據集上的crs
和transform
屬性,以分別獲取投影和地理變換。 然后,您可以在打開時將它們傳遞回 output 圖像文件。
例子:
# Open original Geotiff
original_img = rasterio.open("path/to/input.tif")
# Extract spatial metadata
input_crs = original_img.crs
input_gt = original.transform
# Do your processing. For this example, just read first band of input dataset
processed_img = original_img.read(1)
# Prepare output geotiff file. We give crs and gt read from input as spatial metadata
with rasterio.open(
'path/to/output.tif',
'w',
driver = 'GTiff',
count = 1,
height = processed_img.shape[0],
width = processed_img.shape[1],
dtype = processed_img.dtype,
crs = input_crs,
transform = input_gt
) as output:
output.write(processed_img, 1)
上述示例的注釋:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.