仿射变换的真实示例?


9

维基百科文章

在几何中,仿射变换或仿射图或两个向量空间(严格来说是两个仿射空间)之间的亲和力(来自拉丁语,仿射,“与……相连”)由线性变换和平移组成。

谁能给出在GIS中何时以及如何使用它的真实示例?

Answers:


9

GIS中2D和3D仿射变换的常规用法包括

  • 地图到显示的转换

  • 注册图像和栅格

  • 改变3D视点

  • 通过重新缩放,移动和旋转来修改特征

  • 基准变化(3点和7点公式)。

这些内容在此Web页面上针对2D情况进行了更详细的描述和说明,当您搜索“仿射变换GIS”时可以找到。其他命中提供了更多示例。

仿射变换还提供了一些概念上的简化。例如,每个规则的位置网格仿射等效于具有积分坐标的点的网格,并且地球的所有椭球模型都仿制等效于以原点为中心的单位球体。

最后,请注意(至少从1800年代末开始)欧几里得几何是对距离保持仿射变换组的研究。因为几乎所有的GIS处理(空间索引,空间关系,空间查询,“地理处理”等)都使用基于地图的欧几里得几何的算法,所以仿射变换是 GIS的基础。


5

显示

所有观看者都使用仿射变换将地理坐标转换为屏幕坐标。

概括

泛化中使用的许多变换操作都是仿射变换:缩放,拉伸,平移,旋转等。



3

来自PostGIS doc
“ ST_Affine-将3d仿射变换应用于几何图形以一步完成平移,旋转,缩放等操作。”

这是一个非常肮脏的例子。

两年前,我用它在从mapserver提供的gif图像上构建了可点击的html图像地图。发送给PostGIS的查询会在右侧像素范围内围绕几何图形简化缓冲区并重新计算,因为图像地图的原点位于左上角,而地图的投影原点自然位于左下角。然后,我通过用asp或php编写返回的字符串来创建图像映射。

我挖了肮脏的灰尘,发现了这一点:

SELECT gid, 
    replace(
        astext(
            st_affine(
                ST_SnapToGrid(
                    st_buffer(
                        st_transscale(
                            st_simplify(
                                (st_dump(the_geom)).geom
                            , (st_length(the_geom)/50)::integer)
                        ,(-" & minx & "),(-" & miny & "),(500::double precision/" & deltax & "),(500::double precision/" & deltax & "))
                    ,5)
                ,1,1)
            ,1,0,0,-1,0,300)
        )
    ,' ',',')   
as thetext 
from
 mytable where gid in (" & theList & ") order by st_length(the_geom);

虽然不漂亮,但实际上效果很好,并且可以使用一段时间。

/尼克斯


2

这只是图像或数据集的线性变换-这意味着数据集中的所有坐标均被平等对待。例如,如果(x1,y1)上的点按a缩放并移动b,则所有其他点(x2,y2),(x3,y3),(xn,yn)也将按a缩放并按b移位,依此类推...与像素在数据集或图像中的位置无关。


仿射变换是线性变换的概括。与线性变换不同,仿射变换也可以转换(移动)点。
whuber

1

当我收到无法访问矢量数据的纸质或数字图像地图时,我需要该地图中的信息才能与其他数据叠加。如果未在与我的数据相同或相似的坐标系中打印或导出地图,那么我不仅需要注册(放置,旋转,缩放)。但是要改变它。

这可以通过两种方式完成。
1.在系统中数字化打印图像,然后分配适当的坐标系,然后重新投影数据。或者...
2.放置,旋转并缩放到接近最终位置的位置,然后执行转换。

选择转换类型时,两个数据集中可识别参考点的数量受到限制。

我通常(取决于许多因素)选择将图像放置在最终的静止位置附近,然后执行橡皮图变换。

当我使用大量参考点时,仿射是我的选择之一。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.