我的模型在大西洋里。

2022年7月 — 技术注解 #72

Tessa Hayman

产品专家

有多少人碰到过这样的情况,当他们查看模型的位置的时候,发现它位于大西洋的中央? 问题在于你的坐标参照系统(coordinate reference system – CRS)。 这是所有模型师和GIS工程师的共同问题——如何正确设置CRS。 如果你的模型在错误的地方,解决方法很少是手动转换,而是设置正确的让坐标参考系统。 这应该在任何项目开始的时候进行。

什么是坐标参考系统(CRS)?

坐标参考系统是将地球(3D)上的位置变成地图上的位置的一种方式。 它基本上提供一种将三维位置投射到二维表面的方法,就像我们在地图或电脑屏幕上一样。 你可以把它看作是一种方法,试图把一张纸包成圆、圆锥或圆柱体的地球。

所有CRS在保存距离、角度和地图中物体的面积方面都有一定程度的不准确。 因此,不同的CRS被用于不同的应用和世界上不同的地点。 其目的是在你需要使用它的地方,为你需要使用它的应用提供最准确的投影,保证失真最小。 这就是为什么应该避免手动移动模型或数据源,因为坐标系的改变绝不是简单的平移和旋转。

CRS可以以不同的形式提供。 最常见的是EPSG、WKT或Proj格式。 Aimsun Next支持所有这三种格式。 这些格式中的每一种都将包括以下信息:

  • 数据的投影方法,例如Mercator
  • Datum – 定义参考椭球体相对于地球中心的位置和方向。 最常用的基准面是WGS84
  • 球状体/椭圆体 – 近似地球形状的方法
  • 单位 – 距离和角度的单位,如米和度
  • 原点纬度 – 通常在CRS设计的区域中心
  • 中央经线(原点经度),通常在CRS设计的区域中心

可能还需要设置其它参数。 EPSG代码将这些信息合并为一个数字。 关于常见CRS的更多信息可在以下网站找到: https://spatialreference.org/

如何在Aimsun Next项目开始时设置正确的CRS?

一个常见的问题是,”我怎样才能把我的模型从大西洋转换到正确的位置?”。 虽然本能地认为这似乎是一个简单的操作,但它很少是正确的解决方案。 这是因为当你将一个模型平移一大段距离时,由于位置没有被重新投射到正确的CRS上,它将出现扭曲。 相反,你应该在你的项目开始时寻找正确的CRS。

最好的方法是在创建一个新的模型文件时,使用窗口底部的地图选择位置。 然后选择“设置区域”。 这将使用所给位置的UTM区来设置一个适当的CRS。

图1 新项目窗口

如何检查位置?

在你打开你的新文件或你从别人那里收到一个模型后,你必须检查位置是否正确。 这意味着你可以利用导入地理定位目标的优势,如来自GTFS上传的公共交通数据、背景地图和其他基于GIS的数据源。 它还让你能够导出结果,以便在其他绘图软件中显示。 事后修复错误的CRS选择可能需要从头开始重新导入一切,所以这是应该尽早检查的事情。

要检查Aimsun Next模型的位置,请放大Aimsun Next的一个路口。 然后到工具 > 在地图中显示位置。 这将带你进入到地图中的相应位置。 你应该看到相同的路口,而不仅仅是相同的粗略位置,因为CRS有时可能会差几米的距离。 如果地图没有显示正确的位置,或者显示的地图方向与你的模型不一样,你的CRS就有问题了。

图2 在地图中显示位置

你也可以通过导入外部地图软件(如QGIS)并与可信的背景来源(如OpenStreetMap)进行比较来检查数据源的有效性。

如何改变一个现有模型的CRS

注意:在改变现有模型的CRS时,应谨慎。 如果一个模型或图层在某一时刻由于导入了不正确的CRS而变得扭曲,那么这个功能将无法工作,因为模型将保留扭曲的情形。

虽然建议你在一开始就把模型的位置弄正确,但这并不总是可能的。 如果你从别人那里得到一个模型,发现事情不对头,你可以在Aimsun Next中改变模型的CRS。 要做到这一点,请进入项目>属性,将WKT或EPSG字符串改为正确的CRS。 当你按下OK键时,模型的每一个点的X和Y坐标都将根据新的投影进行编译。 然后,你应该使用“在谷歌地图上显示位置”工具来检查这是否已经固定了位置。

图3 设置CRS

请注意,与GIS软件不同,改变项目CRS并不执行重新投影,也就是说,它不改变点的x、y,它只是设置了一个不同的方式来解释这些x和y值。 只有在导入新数据时才会进行重投影,以将外部文件中的位置(可以是度数、英尺或米数,有另一个CRS)转换为项目中设置的CRS。 这意味着,如果任何图层在导入时有不正确的CRS设置,其位置已经被扭曲,你不能通过改变项目的CRS来解决这个问题:唯一的解决办法是重新导入文件。 因此,当你第一次导入一个外部文件时,你应该检查你的对象的X和Y是否与已知的投影数据相一致,例如,如果你的模型在英国,就对照使用英国国家网格(British National Grid)的CAD地图进行检查。 在缺乏其它数据源的情况下,你总是可以从OpenStreetMap导入区域作为背景,而进行这种检查。

图4 一个扭曲的模型和同一网络的未扭曲版本。 请注意,扭曲的版本的结点不是方形的。
图5 你可以通过点击顶点来检查任何点的x和y

如何找到正确的CRS

如果它仍然没有转到正确的位置,或者额外的图层不匹配,那么项目CRS或者在导入过程中选择的CRS都是不正确的。 但是,如果没有提供正确的CRS,要找到正确的CRS并不容易,这在CAD文件中很常见。 一个好的起点是在https://epsg.org/home.html,搜索用于你的项目区域的CRS,并选择其x,y值与你的文件中的更相似的一个。

如何导入辅助层

当你从不同的数据源将另一个图层导入Aimsun Next时,它的CRS可能与项目的CRS不同。 如果它没有被重新投射到项目的CRS中,它将不能正确地对齐。

为了解决这个问题,Aimsun Next使用了即时重投影。 当你导入一个图层时,你会被提示选择文件使用的CRS。 如果它与项目中设置的不一样,第二个对话提供了选择是否将文件重新投射到项目的CRS上的可能性,或者不重新投射而导入文件并将文件的CRS设置为项目的CRS。 一般来说,第一个选项是要选择的。 第二个选项只有在你还没有创建或导入任何东西到模型中,并且你还没有设置正确的项目CRS时才有用,因为它不会把已经在模型中的对象重新投射到新的CRS上。

图6 导入GIS层的界面。 CRS是由下面的文件自动填入的
图7 提示选择要保留的CRS

然而,当你导入CAD文件时,你有一个稍微不同的对话框,因为它们不包括文件本身中使用的CRS描述。 因此,你必须找到正确的投射方式,并在对话框内标明。

图8 CAD导入对话框
  • 有问题吗? 请联系我们。

    我们在这里提供帮助!

  • 有问题吗? 请联系我们。

    我们在这里提供帮助!

分享