affine: python仿射变换包
affine是一个用于描述二维图像仿射变换的包,可以定义变换参数并进行变换,可以几何其他的GIS包使用,比如GDAL, RasterIO等。
affine的简单介绍参考:https://pypi.org/project/affine/
affine的官方文档见:Welcome to rasterio/affine’s documentation! — rasterio/affine development documentation
下面给出一个使用affine定义用于GIS包地理参考的例子,特别需要注意的是from_gdal中地理参考参数顺序是 c a b f d e
from affine import Affine
geotransform = (-237481.5, 425.0, 0.0, 237536.4, 0.0, -425.0) # 注意这里顺序是 c a b f d e
fwd = Affine.from_gdal(*geotransform)
col, row = 0, 100
fwd * (col, row) # 正向变换
# 输出
# (-237481.5, 195036.4)
rev = ~fwd # 反向变换
rev * fwd * (col, row)
# 输出,先后进行正反变换后,恢复原来的坐标
# (0.0, 99.99999999999999)