Py学习  »  Python

【大神投稿】用Python还原《三体》中的二向箔——地球表面的二维投影

数读城事 • 6 年前 • 582 次点击  


今天的文章是主页菌期待已久的

 投稿文章

作者:盛光晓

自我介绍:粗通python,精通arcpy


接下来我们就来看文章吧




缘起

    


在刘慈欣的《三体》中,最终将太阳系文明带入毁灭的是歌者文明向地球方向投掷的一片小小的二向箔。整个太阳系,作为无可争议的三维存在,却被撕扯着,渐次掉入由二向箔展开而成的二维画卷中。作为地球的前后两任执剑人,罗辑在画内,程心在画外。飞船载着嚎啕的眼泪驶向更深的夜空,引擎的火焰向着正在坠入深渊的地球家园宣示着最为深情而热烈的告别。


在被刘慈欣的想象力所折服的同时,测绘出身的你我,想必眼前已经开始浮现大地测量学老师那聘婷的背影和熟悉的脸庞,这不就是她课上讲的地图投影吗?


没错!我们今天就要用python实现地图投影的可视化。保证比课本上这样的黑白插页要直观、美观得多。

地图投影的课本黑白插图


用Python复习下投影吧

    


众所周知,投影主要分为三种:方位投影圆锥投影圆柱投影


方位投影就是用一个平面,将椭球面向该平面的法方向进行正射投影,椭球上,离平面越近的点变形越小,越远的点变形越大(相同的纬度差,在投影面上的距离,和实际的球面距离相差更远)。在下图中,红色的点位于地球上,黄色的点是投影点。

当然,该平面和椭球的关系可以是相离、也可以是相切,还可以是相交。据此进行投影的效果也是略有差异。


然后就是圆锥投影,圆锥投影就是将一个倒扣的圆锥放在地球附近,然后将地球椭球面上的点投影到圆锥面上,同理,圆锥面和地球椭球的关系也分为相切、相离、相交三种。兰伯特投影就是一种圆锥投影。


最后就是圆柱投影,就是用一个圆柱将地球椭球包住,将地球椭球面上的点投影到圆柱面上。圆柱面和地球椭球的关系也分为相离、相切、相交三种。


最常用的高斯克吕格投影和UTM投影就属于圆柱投影。下图中显示的是高斯克吕格投影,其中红色代表地球表面的点,深绿色代表投影面上的点。

高斯克吕格是按照3度带或者6度带来进行分带投影的,在投影之后,中央子午线的长度保持不变,从图上看,子午线由曲线变成直线,在垂直方向上显得更长了。


如果是从三度带(或者六度带)的法方向看过去,就是所有地面点和投影点的叠加。看上去,有一种模糊而清晰的美感。


作者大大温馨的提供了代码文件~大家感兴趣的可以分享一下文章~

然后在公众号后台回复“代码”(不分享主页菌也不会强制的啦==)

--------------------- 

最后,大家可以去关注作者的博客哦~有很多有意思的文章

esa72ya的博客:https://blog.csdn.net/esa72ya





整理数据资料不易

喜欢这篇文章的话

记得帮我们分享点赞

特别特别喜欢的话

也可以赞赏


如需转载文章、投稿或者合作

请直接在公众号后台联系

真的特别欢迎投稿啊!!!!

使用关键词搜索历史文章请点击【阅读原文

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/30950
 
582 次点击