描述平面仿射变换的矩阵
项目描述
描述二维平面仿射变换的矩阵。
仿射包是从Casey Duncan的Planar包派生出来的。请参阅affine/__init__.py中的版权声明。
用法
以下是二维变换的3x3增广仿射变换矩阵的示例。
| x' | | a b c | | x | | y' | = | d e f | | y | | 1 | | 0 0 1 | | 1 |
可以通过将值 a, b, c, d, e, f 传递给 affine.Affine 构造函数或使用其 identity()、translation()、scale()、shear() 和 rotation() 类方法来创建矩阵。
>>> from affine import Affine
>>> Affine.identity()
Affine(1.0, 0.0, 0.0,
0.0, 1.0, 0.0)
>>> Affine.translation(1.0, 5.0)
Affine(1.0, 0.0, 1.0,
0.0, 1.0, 5.0)
>>> Affine.scale(2.0)
Affine(2.0, 0.0, 0.0,
0.0, 2.0, 0.0)
>>> Affine.shear(45.0, 45.0) # decimal degrees
Affine(1.0, 0.9999999999999999, 0.0,
0.9999999999999999, 1.0, 0.0)
>>> Affine.rotation(45.0) # decimal degrees
Affine(0.7071067811865476, -0.7071067811865475, 0.0,
0.7071067811865475, 0.7071067811865476, 0.0)
这些矩阵可以应用于 (x, y) 元组以获得变换后的坐标 (x', y')。
>>> Affine.translation(1.0, 5.0) * (1.0, 1.0)
(2.0, 6.0)
>>> Affine.rotation(45.0) * (1.0, 1.0)
(1.1102230246251565e-16, 1.414213562373095)
它们也可以相乘以组合变换。
>>> Affine.translation(1.0, 5.0) * Affine.rotation(45.0)
Affine(0.7071067811865476, -0.7071067811865475, 1.0,
0.7071067811865475, 0.7071067811865476, 5.0)
与GIS数据包一起使用
地理参考的栅格数据集使用仿射变换将图像坐标映射到世界坐标。 affine.Affine.from_gdal() 类方法有助于转换 GDAL GeoTransform,其中包含6个数字的序列,前两个是x和y偏移,后两个是x和y像素大小。
使用GDAL数据集变换矩阵,可以轻松计算对应于原点下方100行像素左上角的像素的世界坐标 (x, y)。
>>> geotransform = (-237481.5, 425.0, 0.0, 237536.4, 0.0, -425.0)
>>> 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)
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪一个,请了解更多关于安装包的信息。
源代码分发
affine-2.4.0.tar.gz (17.1 kB 查看散列)
构建分发
affine-2.4.0-py3-none-any.whl (15.7 kB 查看散列)
关闭
affine-2.4.0.tar.gz的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | a24d818d6a836c131976d22f8c27b8d3ca32d0af64c1d8d29deb7bafa4da1eea |
|
MD5 | bc92555b48556f7439664cec13cf31f8 |
|
BLAKE2b-256 | 6998d2f0bb06385069e799fc7d2870d9e078cfa0fa396dc8a2b81227d0da08b9 |
关闭
affine-2.4.0-py3-none-any.whl的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 8a3df80e2b2378aef598a83c1392efd47967afec4242021a0b06b4c7cbc61a92 |
|
MD5 | 8626f021f29631950dfad7b4c6435fc4 |
|
BLAKE2b-256 | 0bf785273299ab57117850cc0a936c64151171fac4da49bc6fba0dad984a7c5f |