Перепроецирование наборов растровых данных с помощью rasterio.warp.reproject

“rasterio.warp.reproject” — это реальный метод библиотеки Rasterio, используемый для перепроецирования наборов растровых данных из одной системы координат (CRS) в другую. Вот объяснение метода и пример кода:

Описание метода:
Метод «rasterio.warp.reproject» используется для перепроецирования набора растровых данных из одной CRS в другую. Он принимает исходный набор данных, исходный CRS, целевой CRS и другие дополнительные параметры в качестве входных данных и создает новый набор растровых данных с целевым CRS. Перепроецирование включает преобразование координат каждого пикселя в исходном наборе данных в соответствующие координаты в целевом CRS.

Пример кода:
Вот пример использования «rasterio.warp.reproject» для перепроецирования набора растровых данных:

import rasterio
from rasterio.warp import reproject, Resampling
# Open the source dataset
with rasterio.open('source.tif') as src:
    # Define the target CRS
    target_crs = 'EPSG:4326'  # Example target CRS: WGS84
    # Define the target shape and resolution
    target_transform, target_width, target_height = rasterio.warp.calculate_default_transform(
        src.crs, target_crs, src.width, src.height, *src.bounds)
    target_profile = src.profile
    target_profile.update({
        'crs': target_crs,
        'transform': target_transform,
        'width': target_width,
        'height': target_height
    })
    # Create the target dataset
    with rasterio.open('target.tif', 'w', target_profile) as dst:
        # Reproject the source dataset to the target CRS
        reproject(
            source=rasterio.band(src, 1),
            destination=rasterio.band(dst, 1),
            src_transform=src.transform,
            src_crs=src.crs,
            dst_transform=target_transform,
            dst_crs=target_crs,
            resampling=Resampling.nearest
        )

В этом примере мы открываем исходный набор данных с помощью rasterio.open(). Затем мы определяем целевой CRS (target_crs) и вычисляем целевую форму и разрешение с помощью rasterio.warp.calculate_default_transform(). Мы обновляем профиль целевого набора данных, указывая целевой CRS и преобразуем. Наконец, мы создаем целевой набор данных, используя rasterio.open(), и используем rasterio.warp.reproject()для выполнения перепроецирования, указывая исходный и целевой каналы, преобразуем, CRS и метод повторной выборки.