matlamatlab导入txt数据并画图读取txt文件并绘图(matlab导入txt数据并画图)

2017年10月19日,美国夏威夷的Pan-STARRS望远镜发现了一个来自太阳系以外的小天体,这个星际来客名字叫?Oumuamua,中文名叫奥默默,具体的细节我另找时间介绍,这个小天体有个特点,那就是形状上来看是一个100~1000米长,35~167米宽的“柱体”。就像下面这张图看到的,那么这个形状是如何得到的呢?

matlamatlab导入txt数据并画图读取txt文件并绘图(matlab导入txt数据并画图)

艺术家画出来的星际天体'Oumuamua

在回答这个问题之前,有必要让大家看看在望远镜中,科学家们看到的星空和小行星是怎样的,下面这张图是由多个照片合成的,标注出来的是小行星(3200)Phaethon在不同时刻相对于背景恒星的位置。我们可以看到,实际上天文学家观测到的星空,并没有艺术家们渲染得那么美,都是黑色跟白色的。恒星之所以是恒星,是因为它们距离非常遥远,在天空中的坐标是不变的,而像水星、金星、木星,以及太阳系中的其他小行星,之所以叫行星,是因为它们从视觉上来看,相对于背景恒星是运动的。同时,我们用望远镜看到了一颗小行星,在视野中,其实就是一个点,并不是具体的形状。而形状则需要通过其他手段来获得,这个方法就是光变曲线形状反演

matlamatlab导入txt数据并画图读取txt文件并绘图(matlab导入txt数据并画图)

天文望远镜中的星空和小行星(3200) Phaethon

小行星的形状是不规则的,并且在不停地自转,在距离变化不大的情况下,不同的面朝向我们时,看到的亮度也就不一样,因为这个亮度与朝向我们的投影面积有关。前面提到过,望远镜中的小行星其实就是一个点,虽然肉眼看上去没什么,但是望远镜的仪器如果足够灵敏,那么就可以探测到这个点的亮度是在实时发生变化的。所谓光变曲线反演获得小行星形状模型,实际上就是我们给定一个理论的形状,然后让它不同的面朝向观测者,通过一系列的理论公式,模拟出它视亮度的变化,并且与观测到的亮度变化进行比较,如果与观测拟合的不好,那就改变初始的形状、指向等,直到找到一个最优的形状,使之得到的理论亮度变化曲线与真实观测到的亮度变化曲线一致。这个过程比较复杂,并且实际上已经获得形状的小行星也就几千颗,而已经探测到的小行星足足超过一百万颗,这是因为形状模型的反演需要足够多的观测数据,而并不是所有小行星的观测数据多到可以反演出一个可靠的形状模型。

matlamatlab导入txt数据并画图读取txt文件并绘图(matlab导入txt数据并画图)

光变曲线示意图,图中的点是观测到的亮度变化,曲线则是理论模拟得到的值

这里介绍一个网站,可以获得已经通过光变曲线反演得到的小行星形状,就不需要我们自己去做那么多繁琐的反演过程了,这个网站叫Database of Asteroid Models from Inversion Techniques 简称DAMIT,链接如下图所示:

matlamatlab导入txt数据并画图读取txt文件并绘图(matlab导入txt数据并画图)

在这个网站进去后,直接输入小行星编号,比如我们要查询2号小行星Pallas的形状信息,可以输入2,然后回车,可以得到下面的界面:

matlamatlab导入txt数据并画图读取txt文件并绘图(matlab导入txt数据并画图)

上图中,λ、β是代表自转轴的赤经赤纬指向,P代表以小时为单位的自转周期,对这颗小行星,有三个最优解的形状。另外右边的File选项中,shape.png,可以获得小行星的形状模型图片,以小行星Pallas为例,如下图是从三个角度看反演后得到的形状模型示意图。

matlamatlab导入txt数据并画图读取txt文件并绘图(matlab导入txt数据并画图)

那么这个图是如何画出来的呢?这就要点进另一个文件,shape.txt,这里面是关于形状的顶点文件和面元文件。这里就需要介绍一下小行星形状模型的一些内容。通常我们用由若干三角面元组成的多面体来表示一颗小行星的形状模型,比如上面的Pallas,但我们点shape.txt后,会看到如下的界面:

matlamatlab导入txt数据并画图读取txt文件并绘图(matlab导入txt数据并画图)

这个文件中,第一行的402和800,代表反演出来的形状是有402个顶点,800个三角形的面元组成的多面体,也就是800面体。我们可以把这些数据复制到一个txt文件里,一共有1202行,前402行是顶点三维坐标,也就是各个顶点相对于中心点的坐标,后800行是面元数据,这里比较难理解,面元数据都是下面这样的,全都是整数:

matlamatlab导入txt数据并画图读取txt文件并绘图(matlab导入txt数据并画图)

其中第一行的1,2,3代表了第一个面,1代表上面提到的402个顶点的第一行三个数,也就是XYZ坐标,2代表402个顶点的第二行,以此类推。然后我们可以用相关的软件进行做图。这里用matlab进行画图,还是以小行星Pallas为例,首先把前402行顶点坐标保存到anodes.txt文件中,再把后面八百行面元坐标保存到一个afacets.txt文件中,然后将这两个文件load一下,语句为load afacets.txt 和 load anodes.txt,再按照下图中的matlab语句画图

matlamatlab导入txt数据并画图读取txt文件并绘图(matlab导入txt数据并画图)

其中倒数第四行的light,表示光源的方向,最后一行的view表示看的角度,可以自己修改,以能够从不同角度去看形状特征。

最后还要说明一点,获得小行星形状模型的方法不仅仅有光变曲线反演法,还可以通过雷达观测反演法,已经探测器近距离探测获取模型,只是这两种方法应用范围太小,比如雷达探测法,只能对距离地球比较近的小行星去应用,而探测器则只能对探测目标进行探测,成本很高,比如对Bennu、Ryugu等小行星的近距离探测,还有我国嫦娥二号对Toutatis小行星的探测,只有很少的小行星被探测器访问过,这里就不做赘述。

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 sumchina520@foxmail.com 举报,一经查实,本站将立刻删除。
如若转载,请注明出处:https://www.sumedu.com/faq/165782.html