# DIY-MeteorStation **Repository Path**: mseeworld/DIY-MeteorStation ## Basic Information - **Project Name**: DIY-MeteorStation - **Description**: DIY流星观测站是一个开源的流星观测项目,其原型是国外流星研究机构CMN开发的流星自动观测软件。现阶段该项目与CMN的最新版本同步,将来会对该项目进行本地化定制。 - **Primary Language**: Python - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 6 - **Forks**: 1 - **Created**: 2018-08-12 - **Last Updated**: 2024-08-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DIY流星观测站 DIY流星观测站是一个开源的流星观测项目,旨在为广大流星爱好者(天文爱好者)提供一个可实践的科普平台,引导大家手动打造一个属于自己的流星观测站。该项目面向市场上成熟的廉价硬件器材进行设计,如使用通用的工业相机和镜头组装流星观测望远镜,使用树莓派(Raspberry Pi 3,RPi3)进行流星观测数据的处理和存储。其原型是国外流星研究机构CMN开发的流星自动观测软件,现阶段该项目与CMN的最新版本同步,将来会对该项目进行本地化定制。软件一直在升级当中,热烈欢迎bug反馈。 ![GWAC项目观测到的流星图像](http://www.gwac.top/uploads/1/image/public/201808/meteor.gif) 上图所示,为GWAC项目观测到的火流星图像,GWAC项目是国家天文台空间科学部设计的超大视场光学巡天相机阵,其每天可观测到几百颗流星。该流星观测站与GWAC项目原理类似,都是通过望远镜来观测光学波段的目标,但是该流星观测站现在的性能指标与GWAC相比相差十万八千里。希望有志同道合的小伙伴一起合作,共同推进该项目,期待在不远的将来咋们这个项目也能每天拍到很多很多流星。 QQ交流群:137357505,进群问题的答案是该项目的gitee项目名称[DIY-MeteorStation](https://gitee.com/mseeworld/DIY-MeteorStation)。 ## 相关系列文章 - [01 DIY流星观测站](https://blog.csdn.net/mseeworld/article/details/81639468) - [02 DIY流星观测站——手把手搭建指南](https://blog.csdn.net/mseeworld/article/details/81636441) - [03 DIY流星观测站——设备选型与采购](https://blog.csdn.net/mseeworld/article/details/81639565) - [04 DIY流星观测站——镜头简介](https://blog.csdn.net/mseeworld/article/details/81639607) - [05 DIY流星观测站——相机简介](https://blog.csdn.net/mseeworld/article/details/81639619) ## 图片展示 ![DIY流星观测站组装完全体](https://oscimg.oschina.net/oscnet/d1de9ba89decb165fe9fe13539cf5258899.jpg "DIY流星观测站组装完全体") DIY流星观测站组装完全体,模拟相机连线复杂些,数字相机连线简单些。 ![DIY流星观测站晚上11点试拍](https://oscimg.oschina.net/oscnet/7031e8f0948156a7224ac2b66603a7a642d.jpg "DIY流星观测站晚上11点试拍") DIY流星观测站晚上11点试拍,拍摄距离大于100米。左图为无照明环境下的图像。右图为楼顶图像,有天光背景照射。 ![DIY流星观测站拍摄到的流星](https://oscimg.oschina.net/oscnet/acd6c1ebecddfc6c1cf9140d0828c60e33f.jpg "DIY流星观测站拍摄到的流星") DIY流星观测站拍摄到的流星示意图。 ## 项目背景 ### 1,重温小时候的点滴 夏天的时候,晚上洗完澡,躺在平房上数星星,时不时一颗流星一闪而过,赶紧许个愿:希望明天不上课,和小伙伴们一起去戳鸟窝。转眼间二十多年过去了,现在城市上班,晚上走在路上,已经习惯了抬头一偏灰蒙蒙的天空,甚至已经忘了要抬头看天了。我们滑过的流星、眨眼的星星、唱歌的鸡,捉老鼠的中华田园犬、翱翔的鸟、呱呱的青蛙等等等都去哪儿了?既然在城市里看不到流星(星星),那能否通过现在的技术手段帮助我们看到流星? ### 2,水深火热的中国中小学教育 幼儿园小学化、小学初中化、初中高中化,孩子们有着数不完的作业和补习班。孩子们的童年生活已然失去了接触色彩缤纷的自然世界的机会,突然觉得我们的儿时时光还是挺幸福的!!话说回来,既然我们无法改变孩子们现在的应试现状,那我们能否让孩子享受现在的科技红利?通过市场上成熟的工业产品组装一套流星观测设备,让孩子们体验动手组装望远镜乐趣的同时,也可以通过设备近距离观测星空,体验科学探索宇宙奥秘的乐趣。 ### 3,国内科普教育 国内公益组织[**一片星空**](http://www.ssaec.org/)在天文科普教育上做的非常好,该组织经常在北京的中小学校和社区举办天文科普活动,利用天文科普观测设备帮助学生们近距离接触星空。但是公益科普组织的力量毕竟是有限的,只能照顾到极少数人群。如何让更多的人(尤其是学生群体)近距离接触星空,探索大自然的奥秘,是我们大家都应该关注并思考的问题。 ## 项目目标 该项目聚焦流星观测,让大家能看到流星,能详细测量流星的物理参数(如速度,质量,甚至物质组成),甚至能推测流星的来源。 ### 1,DIY便携式流星观测站 面向动手能力强,有一定计算机基础的天文爱好者。使用开源流星观测软件、超小型移动计算机(如树莓派,Raspberry Pi,RPi)和商用监控摄像头设计便携式流星观测站,这样任何人可以将设备放在自己家屋顶,在屋里躺在床上检测流星的观测结果。 ### 2,公共流星观测站 在郊区或偏远山区(夜天光少,晴天多)设置一个自主化流星观测站点,将站点的视频流实时发布到网上,这样大家可以在网上看到实时的星空了。选址方案:1)自家屋顶:个人感觉农村老家比较适合:有宽带支持,家用电,维护方便;2)官方支持:寻求与国家天文台合作,在国家天文台的野外观测站放置一个流星观测设备。 ## 当前软件功能如下 1. 自动拍摄视频:自动从黄昏开始运行,在黎明结束运行。一年四季的黄昏和黎明时间是不一样的,所以每天的开始和结束时间并不相同。 1. 图像压缩算法:将连续的256帧图像压缩为4帧图像,详细压缩算法请参考论文(Jenniskens et al., 2011 CAMS)。 1. 实时探测火流星。 1. 从压缩文件中探测流星。 1. 从压缩文件中提取恒星目标。 1. 天文位置和测光定标。 1. 对每天晚上的结果自动重新进行天文位置定标。 1. 自动上传结果到中心服务器,如果指定了中心服务器,并开启了该功能。 1. 手动检查火流星和流星。 ## 软硬件需求 该指南面向有Linux和树莓派使用经验的用户。新手请尽量按照下面的步骤依次进行操作。 ### 树莓派 1. **树莓派(RPi3)**:观测站采用树莓派3进行流星数据处理。 1. **存储卡**:新买的树莓派默认不带存储卡,需要自己配置一个。观测站在运行时每天晚上会产生几GB的数据,为了能存储至少一个星期的数据,最好能为树莓派准备一个大于等于64GB的microSD存储卡。 1. **电源**:电源规格为5V,最大电流至少为2.5A。使用稳定的电源,会减少后面运行时莫名其妙的故障。尤其是在冬天低温天气观测时,稳定的电源能保证系统的正常运行。 1. **散热风扇和散热片**:夏天时需要。 1. **实时时钟模块**:树莓派电脑本身不带电池,每次断电后,系统的时间会丢失。如果树莓派一直连接在网络上,可以设置系统自动同步网络时钟。如果树莓派不在网络上,就需要为树莓派电脑增加一个实时时钟模块(DS3231带电池),该模块可以保持电脑在关机后时间不丢失。具体设置过程请参考Guides/rpi3_rtc_setup.md。 ### 相机 系统早期版本基于模拟相机进行开发,因而对模拟相机的支持比较完备。数字相机的支持正在测试当中,敬请期待。 1. **相机**:系统测试相机为Sony Effio 673 CCTV相机,该相机使用12V的电源供电。 1. **镜头**:系统测试镜头为4或6毫秒焦距的广角镜头。4毫米的镜头视场大约为64*48度,6毫米的镜头视场比4毫米的稍小。如果镜头上有近红外滤光片( IR-cut filter),最好去掉该滤光片。 1. **数字视频采集卡**:将相机产生的模拟视频信号数字化,以便树莓派处理。系统选用EasyCap UTV007采集卡,该采集卡为USB采集卡,可直接接在树莓派上。我们测试了多种型号的采集卡,发现UTV007与树莓派的兼容性最好。 ### 软件依赖 项目中树莓派3选择Raspbian Jessie操作系统,详细安装教程请参考[树莓派安装](https://www.raspberrypi.org/documentation/installation/installing-images/)。 #### 树莓派上的软件依赖包 - git - mplayer - Python2.7 or Python 3.5 - python2.7-dev or python3-dev - libblas-dev liblapack-dev - libffi-dev libssl-dev - Python libraries: - gitpython - astropy - OpenCV 3 for Python - PIL (i.e. python-imaging-tk) - numpy (1.14.0 or later) - scipy (1.0.0 or later) - matplotlib (2.0.0 or later) - cython (0.25.2 or later) - pyephem (3.7.6.0 or later) - paramiko 所有的python依赖包,会在运行setup.py时自动安装。如果想使用IP相机,则需要安装一个兼容gstreamer的OpenCV包,请参考[opencv3_install.sh](opencv3_install.sh)。 ## 软件设置 ### 设置时区为UTC UTC为天文领域通用时间格式。在不同地区和国家之间合作交流时,UTC时间会非常方便。 ### 开启watchdog服务 watchdog服务可定时检查树莓派电脑是否工作正常或死机,如果它发现树莓派宕机了,会重启树莓派电脑。详细设置请参考:[Guides/enabling_watchdog.md](Guides/enabling_watchdog.md)。 ### 下载代码 ``` git clone https://gitee.com/mseeworld/DIY-MeteorStation.git ``` ### 安装代码 在RMS目录下运行 ``` sudo python setup.py install ``` ### 设置视频编码格式(仅针对模拟相机) 在连接好EasyCap数字视频采集卡之后,我们需要检查视频设置是否正常。 #### NTSC制式的相机(北美地区) 在命令行中运行: ``` mplayer tv:// -tv driver=v4l2:device=/dev/video0:input=0:norm=NTSC ``` #### PAL制式的相机(欧盟地区) 首先在命令行中运行: ``` mplayer tv:// -vo null ``` 几秒钟之后,按Ctrl+C杀掉进程,然后在运行命令: ``` mplayer tv:// -tv driver=v4l2:device=/dev/video0:input=0:norm=PAL ``` ### 编辑配置文件: 开始运行前,首先需要对配置文件[.config](.config)进行本地化设置: #### [System] ##### Station ID 观测站的唯一编号,可以随便取一个3位数数字。 ##### GPS location 观测站所在位置的经纬度坐标,该坐标用来自动计算每天的黄昏和黎明时间,用于控制系统的开始和结束运行时间。经纬多坐标可以通过手机的GPS软件查询,也可以通过百度等网站查询:[百度页面查询经纬度](http://api.map.baidu.com/lbsapi/getpoint/index.html)。 #### [Capture] ##### Resolution and FPS 对不同的相机,需要正确设置相机的分辨率和帧频。对模拟相机可参考下表。 | 参数 | PAL | NTSC | |--------|-----|------| | 相机宽 |720 |720 | | 图像高 |576 |480 | | 帧频 |25.0 |29.97 | ## 运行代码 ### 开始自动观测流星 在RMS目录下运行命令 ``` python -m RMS.StartCapture ``` 程序会自动每天在日落时开始运行,在日出时结束运行。 如果需要立即运行程序,可添加参数 -d HH.hh,HH.hh代码需要运行的小时数 ``` python -m RMS.StartCapture -d 1.5 ``` ### 查看压缩视频文件 运行CMN_binViewer可以查看硬盘上的压缩视频文件。 ### 查看火流星文件: ``` python -m Utils.FRbinViewer ~/RMS_data/YYYMMDD_hhmmss_uuuuuu ``` YYYMMDD_hhmmss_uuuuuu是每个观测夜的目录名 ### 恒星提取和流星探测 如果想要历史记录图像进行重新处理,如恒星提取和流星探测,可以运行命令: ``` python -m RMS.DetectStarsAndMeteors ~/RMS_data/YYYMMDD_hhmmss_uuuuuu ``` 该命令会处理一个观测夜目录(YYYMMDD_hhmmss_uuuuuu)中所有的数据,需要运行一段时间。运行完成后,会产生一个名为CALSTARS 的结果目录。