1. 项目概述与核心价值如果你对头顶上飞过的气象卫星感到好奇想知道如何用几百块钱的设备亲手接收它们传下来的地球照片那这篇文章就是为你准备的。我断断续续玩了五六年气象卫星接收从最初的懵懂到后来能稳定收到清晰的云图中间踩过的坑、绕过的弯路不计其数。今天分享的这套方案核心就是利用树莓派这块小巧的单板电脑配合一个几十块的RTL-SDR电视棒搭建一个全自动的气象卫星地面接收站。它能同时处理美国的NOAA系列卫星和俄罗斯的Meteor-M2卫星前者给你经典的“黑白电视”般的自动图像传输APT图片后者则能提供分辨率更高的LRPT彩色图像。这件事的吸引力在哪首先当然是极低的入门成本。相比动辄上万元的专业气象接收设备树莓派加RTL-SDR的方案可能总花费都不到五百元。其次它是完全自动化的。你不需要在卫星过顶时守在电脑前系统会根据卫星轨道预测自动开机、调谐频率、录音、解码、生成图片然后关机或待命。最后它带来的成就感是实实在在的。每天看着由自己搭建的“小站”接收到的、覆盖半个地球的云图那种连接浩瀚太空与自家阳台的感觉非常奇妙。无论是业余无线电爱好者、电子DIY玩家还是对气象学、遥感技术感兴趣的学生和教师这个项目都能提供一个绝佳的动手实践平台。接下来我会把整个搭建过程掰开揉碎从硬件选型、软件安装、脚本调试到后期的问题排查和图像优化毫无保留地分享给你。我会重点解释每个步骤背后的“为什么”而不仅仅是“怎么做”让你不仅能复现更能理解其中的原理未来还能根据自己的需求进行调整和优化。2. 硬件准备与选型考量工欲善其事必先利其器。硬件是项目的地基选对了事半功倍选错了可能连信号都抓不到。2.1 核心硬件树莓派与RTL-SDR树莓派是这个系统的大脑。我强烈推荐使用树莓派3B或树莓派4B内存2GB或以上版本。原因很简单处理卫星信号尤其是Meteor-M2的LRPT信号一种数字信号需要进行大量的实时数字信号处理DSP。树莓派3B之前的型号如2B、ZeroCPU算力较弱在解码LRPT时可能会力不从心导致丢包或解码失败。树莓派4B的性能绰绰有余甚至可以在接收的同时运行一些轻量级的服务。操作系统选择上Raspberry Pi OS Lite无桌面版是最佳选择。它资源占用少更稳定因为我们完全通过命令行操作图形界面纯属浪费。RTL-SDR是我们的“耳朵”。市面上绝大多数二三十块钱的RTL2832U芯片的电视棒都可以用比如经典的“RTL-SDR Blog V3”或“Nooelec NESDR”系列。这里有个关键点一定要确认你的电视棒支持直接采样Direct Sampling模式。NOAA卫星的APT信号频率在137MHz左右这个频率RTL-SDR的正常模式可以轻松接收。但有些爱好者为了接收更低频率的信号如HF波段会用到直接采样模式。虽然我们这个项目用不到但支持此功能的设备通常质量更好调谐更精准。购买时可以留意商品描述是否提及“HF”、“直接采样”或“Q通道输入”。2.2 天线系统决定成败的关键天线是接收系统的“咽喉”其重要性甚至超过接收机本身。气象卫星信号是微弱的线性极化信号从近千公里高空传来没有一副好天线再好的接收机也是巧妇难为无米之炊。对于137MHz这个频段QFH四臂螺旋天线或双十字Turnstile天线是公认的性价比之王。它们都是圆极化天线可以有效接收卫星在旋转过程中任意极化的信号避免信号衰落。我强烈建议你自己动手制作一个。材料就是普通的铜管或铜线、一个PVC管作支撑、一个N型或SMA接头成本不超过一百元。网上有大量精确的计算公式和制作教程核心是调整每个振子的长度和间距来谐振在137.5MHz左右。如果你不想自制也可以购买成品V段136-174MHz车载鞭状天线但需要为其制作一个地网几根辐射状的金属杆或线并确保天线竖直放置。这种天线的效果远不如专门设计的QFH或双十字天线可能只能接收到过顶角度很高仰角大于40度的强信号。注意天线必须放置在室外开阔无遮挡的地方远离建筑物和金属物体。楼顶、阳台外挂是最好的选择。一根放在室内的天线效果会大打折扣。2.3 辅助配件与连接低噪声放大器LNA和滤波器这是进阶装备。如果你的接收环境电磁干扰较大城市中常见或者天线电缆很长导致信号衰减严重一个安装在天线端口的LNA可以显著提升信噪比。在LNA之前最好加一个137MHz的带通滤波器用来滤除广播电台、对讲机等强干扰信号防止接收机过载。对于新手可以先用天线直连接收机如果效果不理想再考虑添加。馈线与接头天线到接收机之间需要用同轴电缆馈线连接。尽量使用损耗小的电缆如RG316或LMR-200。长度越短越好。确保接头通常是SMA母头转MCX公头以适配RTL-SDR焊接牢固避免虚接引入噪声。电源与散热为树莓派准备一个足额5V/2.5A以上的电源。长期运行尤其是树莓派4发热量不小建议加装一个小散热片或风扇确保系统稳定。硬件清单总结树莓派推荐4B、RTL-SDR电视棒、自制QFH/双十字天线、同轴电缆、电源。总成本可以控制在500元以内就能搭建起一个专业级接收站的基础。3. 软件环境搭建与基础配置硬件连接好后我们开始给树莓派“灌输灵魂”。这一部分主要是系统性的软件安装和基础配置为后续的卫星预测和解码铺平道路。3.1 系统初始化与依赖安装首先将Raspberry Pi OS Lite镜像刷入SD卡启动树莓派并通过SSH登录。第一件事是更新系统并安装核心依赖包sudo apt update sudo apt upgrade -y sudo apt install -y git cmake build-essential libusb-1.0-0-dev pkg-config libtool automake接下来安装RTL-SDR的驱动和工具。我们不需要从源码编译librtlsdr因为系统仓库里有但为了获得最新的rtl_fm、rtl_test等工具我们安装rtl-sdr包sudo apt install -y rtl-sdr安装后插上RTL-SDR设备运行rtl_test -t来测试设备是否能被正常识别。你应该能看到设备序列号和支持的采样率等信息。如果提示“usb_claim_interface error -6”这通常意味着系统自带的dvb_usb_rtl28xxu内核驱动占用了设备。我们需要将其加入黑名单echo blacklist dvb_usb_rtl28xxu | sudo tee /etc/modprobe.d/blacklist-rtl.conf然后重启树莓派。重启后再次运行rtl_test应该就能正常识别了。3.2 卫星预测工具Predict的安装与配置我们的系统需要知道卫星什么时候从头顶飞过。predict是一个经典的卫星轨道预测程序我们将用它来计算NOAA和Meteor卫星的过境时间。cd ~ git clone https://github.com/kd2bd/predict-2.2.3 cd predict-2.2.3 ./configure make sudo make install安装完成后我们需要获取最新的卫星轨道数据两行轨道根数TLE。我们将创建一个脚本定期从网络更新TLE文件mkdir -p ~/weather/predict cd ~/weather/predict wget -q https://www.celestrak.com/NORAD/elements/weather.txt -O weather.tle你可以将这条wget命令加入crontab每天自动更新。例如编辑crontab -e添加一行0 5 * * * wget -q https://www.celestrak.com/NORAD/elements/weather.txt -O /home/pi/weather/predict/weather.tle3.3 NOAA APT接收核心WxToImg与脚本部署接收NOAA卫星的APT信号核心解码软件是wxtoimg。由于原官网已关闭我们需要使用社区恢复的版本。cd ~ wget https://www.wxtoimgrestored.xyz/beta/wxtoimg-linux-armhf-2.11.2-beta.tar.gz tar xvf wxtoimg-linux-armhf-2.11.2-beta.tar.gz sudo mv wxtoimg /usr/local/bin/ sudo chmod x /usr/local/bin/wxtoimg接下来我们需要部署接收和处理脚本。我们将基于一个经典的社区项目即输入材料中提到的haslettj的项目进行修改。首先获取基础脚本cd ~/weather git clone https://github.com/haslettj/weather-sat cp -r weather-sat/* ./现在关键的一步是修改receive_and_process_satellite.sh脚本以适配新版rtl_fm的输出格式。原脚本中rtl_fm使用-E wav参数但实际输出并非标准WAV格式会导致sox处理出错。我们需要将其改为输出原始数据raw并由sox直接处理找到脚本中类似下面这行可能在30行左右sudo timeout $6 rtl_fm -f ${2}M -s 60k -g 45 -p 55 -E wav -E deemp -F 9 - | sox -t wav - $3.wav rate 11025将其修改为sudo timeout $6 rtl_fm -f ${2}M -s 48k -g 0 -p 68 -E dc -A fast -F 9 - | sox -t raw -r 48000 -es -b16 -c1 -V1 - $3.wav rate 11025参数解释-s 48k设置采样率为48kHz。对于APT信号带宽约34kHz足够了更高的采样率只会增加数据量不提升质量。-g 0设置增益为自动。这是一个起点你需要根据你的信号强度调整。信号太弱就调高如-g 40信号过载出现失真就调低。-p 68设置频率误差校正值PPM。每个RTL-SDR设备都有微小的频率偏差这个值需要你用kalibrate-rtl等工具实测得出。68只是一个示例你必须校准自己的设备。-E dc -A fast启用直流偏移消除和快速模式。sox -t raw -r 48000 ...告诉sox输入是48kHz采样率的16位有符号小端序-es单声道-c1原始数据并将其重采样为11.025kHz的WAV文件这是wxtoimg要求的格式。同时为了让wxtoimg生成彩色图像MSA多光谱分析找到生成图像的命令行将参数-e ZA改为-e MSA/usr/local/bin/wxtoimg -m ${3}-map.png -e MSA $3.wav $3.png至此NOAA APT接收的基础环境就配置好了。你可以手动运行一次receive_and_process_satellite.sh脚本需要正确参数来测试但更常见的是通过后续的调度系统来全自动运行。4. Meteor-M2 LRPT接收链搭建Meteor-M2卫星传输的是LRPT信号这是一种数字信号调制方式为QPSK带宽约150kHz。其接收和解码链比NOAA的APT要复杂一些需要用到GNU Radio进行信号解调再用专门的解码器处理数据流。4.1 GNU Radio与osmocom源安装GNU Radio是一个强大的软件定义无线电开发框架。我们将通过它来运行一个预先设计好的流程图完成LRPT信号的接收和解调。sudo apt install -y gnuradio gr-osmosdrgr-osmosdr是连接GNU Radio和各类SDR硬件包括RTL-SDR的桥梁。安装完成后你可以在命令行输入gnuradio-companion来测试GUI是否正常在Lite系统上需要X11转发不过我们主要使用它生成的Python脚本。4.2 获取并配置LRPT接收流程图我们使用一个由社区优化过的、适用于RTL-SDR的GNU Radio流程图。如输入材料所示我们使用NateDN10修改的版本。cd ~/weather git clone https://github.com/NateDN10/meteor-m2-lrpt.git cd meteor-m2-lrpt这个仓库里包含.grc文件GNU Radio Companion项目文件和已生成的Python脚本rtlsdr_m2_lrpt_rx.py。我们只需要这个Python脚本。将其复制到预测脚本目录并修改关键参数cp rtlsdr_m2_lrpt_rx.py ../predict/ cd ../predict用文本编辑器打开rtlsdr_m2_lrpt_rx.py找到设置频率校正和增益的行通常在__init__函数里self.rtlsdr_source_0.set_freq_corr(69, 0) self.rtlsdr_source_0.set_gain(4, 0)set_freq_corr(69, 0)这里的69是频率误差PPM。你必须将其替换为你自己设备校准后的值和NOAA接收脚本中的-p参数值相同。set_gain(4, 0)这里是增益值。4代表大约4dB是一个较低的起点。对于Meteor-M2由于其信号比NOAA强增益不宜过高否则容易引入噪声导致解码失败。建议从4开始根据解码情况微调范围通常在0到20之间。4.3 LRPT解码器与图像处理工具GNU Radio输出的是一串原始符号.s文件我们需要用专门的解码器medet将其还原为图像数据。cd ~/weather wget https://orbides.org/etc/medet/medet_190825_arm.tar.gz mkdir medet cd medet tar xvzf ../medet_190825_arm.tar.gz解压后你会得到一个名为medet_arm的可执行文件。这就是我们需要的ARM架构解码器。接下来安装图像校正工具meteor_rectify它用于修正Meteor-M2图像因卫星姿态和扫描方式导致的几何畸变。cd ~/weather sudo apt install -y git imagemagick git clone https://github.com/dbdexter-dev/meteor_rectify.git cd meteor_rectify # 可能需要安装Python依赖 pip3 install numpy pillow至此Meteor-M2接收和解码的所有核心组件都已就位。5. 自动化调度系统集成与脚本改造手动触发接收是不现实的我们需要一个“大脑”来统筹一切预测卫星过境时间并在正确的时间启动对应的接收脚本。我们将改造原有的调度系统使其同时支持NOAA和Meteor-M2。5.1 调度脚本原理剖析原项目的核心调度逻辑在schedule_all.sh和schedule_satellite.sh中。schedule_all.sh这是一个主调度器通常由cron定时例如每6小时执行一次。它内部依次调用schedule_satellite.sh为每一颗我们感兴趣的卫星如NOAA 15, 18, 19安排接收任务。schedule_satellite.sh这个脚本接收卫星名、频率等参数。它利用predict工具计算未来一段时间内例如接下来12小时该卫星的所有过境。对于每一次过境它会判断最大仰角MAXELEV是否高于某个阈值例如19度。只有仰角足够高的过境信号才够强值得接收。对于符合条件的过境它使用Linux的at命令在精确的过境开始时间触发另一个处理脚本receive_and_process_satellite.sh。我们的目标是将Meteor-M2也纳入这个自动化流程。5.2 脚本修改步骤详解首先编辑~/weather/predict/schedule_all.sh在文件末尾添加一行为Meteor-M2安排调度。Meteor-M2的下行频率是137.100 MHz。/home/pi/weather/predict/schedule_satellite.sh METEOR-M 2 137.1000接下来修改schedule_satellite.sh脚本的逻辑使其能区分NOAA和Meteor并调用不同的处理脚本。找到脚本中判断MAXELEV并安排任务的部分通常是一个if语句块其修改为if [ $MAXELEV -gt 19 ]; then echo ${1// }${OUTDATE} $MAXELEV if [ $1 METEOR-M 2 ] then echo /home/pi/weather/predict/receive_and_process_meteor.sh \${1}\ $2 /home/pi/weather/${1// }${OUTDATE} /home/pi/weather/predict/weather.tle $var1 $TIMER | at date --dateTZ\UTC\ $START_TIME %H:%M %D else echo /home/pi/weather/predict/receive_and_process_satellite.sh \${1}\ $2 /home/pi/weather/${1// }${OUTDATE} /home/pi/weather/predict/weather.tle $var1 $TIMER | at date --dateTZ\UTC\ $START_TIME %H:%M %D fi fi这段修改的核心是增加了一个if判断如果卫星名是METEOR-M 2就调用新的receive_and_process_meteor.sh脚本否则调用原来的NOAA处理脚本。5.3 创建Meteor-M2专属处理脚本现在我们需要创建这个新的处理脚本receive_and_process_meteor.sh。它的工作流程是调用GNU Radio脚本录音 - 用medet解码 - 用imagemagick和meteor_rectify处理图像。在~/weather/predict/目录下创建该文件内容如下#!/bin/bash # $1 Satellite Name # $2 Frequency # $3 FileName base (e.g., /home/pi/weather/METEOR-M220240501-123456) # $4 TLE File # $5 EPOC start time # $6 Time to capture (seconds) cd /home/pi/weather # Step 1: 使用GNU Radio脚本接收信号生成 .s 文件 # 超时设置为$6秒即捕获时长 timeout $6 predict/rtlsdr_m2_lrpt_rx.py $1 $2 $3 # Step 2: 使用medet解码 .s 文件 # -r 66 -g 65 -b 64 指定了用于红、绿、蓝通道的APID卫星数据包标识 # -na 表示不进行自动对齐对于Meteor-M2通常不需要 # -S 表示输入是符号文件(.s) # 注意这里的APID (66,65,64)对应夏季模式真彩色。冬季卫星可能切换为红外通道需调整。 medet/medet_arm ${3}.s $3 -r 66 -g 65 -b 64 -na -S # 删除巨大的原始 .s 文件以节省空间 rm ${3}.s # Step 3: 检查是否成功生成了解码后的BMP文件_0.bmp, _1.bmp, _2.bmp # medet成功解码后会生成这三个文件分别对应三个通道 if [ -f ${3}_0.bmp ]; then # 获取当前时间的小时数用于判断是上午过境还是下午/晚上过境 dtedate %H # 将三个单色BMP通道合成为一张彩色BMP图片 # 通道顺序红(_2)、绿(_1)、蓝(_0) convert ${3}_2.bmp ${3}_1.bmp ${3}_0.bmp -combine -set colorspace sRGB ${3}.bmp # 使用rectify.py校正图像几何畸变生成 -rectified.png meteor_rectify/rectify.py ${3}.bmp # 判断过境时间如果是在13点UTC之前是上午过境图像方向基本正确。 # 如果是13点之后是下午/晚上过境卫星飞行方向相反图像需要旋转180度。 if [ $dte -lt 13 ]; then convert ${3}-rectified.png -normalize -quality 90 $3.jpg else convert ${3}-rectified.png -rotate 180 -normalize -quality 90 $3.jpg fi # 清理中间文件只保留最终的JPG图片 rm $3.bmp rm ${3}_0.bmp rm ${3}_1.bmp rm ${3}_2.bmp rm ${3}-rectified.png fi创建完成后赋予其执行权限chmod x ~/weather/predict/receive_and_process_meteor.sh5.4 设置定时任务Cron最后我们需要让schedule_all.sh定时运行以不断更新未来的接收计划。编辑crontab -e添加如下行# 每6小时运行一次调度脚本安排未来12小时的卫星过境接收任务 0 */6 * * * /home/pi/weather/predict/schedule_all.sh # 可选每天凌晨5点更新一次卫星轨道数据TLE 0 5 * * * wget -q https://www.celestrak.com/NORAD/elements/weather.txt -O /home/pi/weather/predict/weather.tle至此整个自动化系统就搭建完成了。树莓派会每6小时检查一次未来有哪些卫星过境并将接收任务排入at队列。当卫星过境时间到来时对应的脚本会自动启动完成信号接收、解码、图像处理的全过程并将最终的JPG图片保存在/home/pi/weather/目录下。6. 核心参数校准与性能调优脚本和环境搭好了但直接运行很可能收不到好图像甚至收不到任何图像。以下几个关键参数的校准是决定项目成败的最后一步。6.1 RTL-SDR频率误差PPM校准这是最重要的一步。RTL-SDR的晶振有误差导致其接收频率与实际频率存在偏差。如果不校准你的接收频率可能偏差几十kHz完全收不到信号。校准需要用到kalibrate-rtl工具。首先安装它sudo apt install -y kalibrate-rtl找一个你知道确切频率的强信号源比如本地的FM广播电台例如100.0 MHz。运行校准命令kal -s GSM900 # 尝试校准GSM 900MHz频段信号强容易成功 # 或者针对特定频率范围扫描 kal -f 935 -g 40命令会扫描附近的GSM基站信号并计算平均的PPM误差值。记下这个值例如-68或52。这个值就是你需要填入到所有接收脚本中的-p参数对于rtl_fm或set_freq_corr参数对于GNU Radio脚本的绝对值。注意符号在rtl_fm中如果kal输出是-68则参数用-p 68在GNU Radio的Python脚本中set_freq_corr的参数就是68。6.2 接收增益Gain设置增益不是越高越好。增益过高会把背景噪声放大导致信噪比下降解码困难增益过低则信号太弱。对于NOAA APTrtl_fm建议从-g 0自动增益开始。如果收到的音频在wxtoimg里看起来信号条很弱低于30%可以逐步调高如-g 20-g 35。观察解码图像找到图像清晰且背景噪声最小的增益值。城市环境中-g 25到-g 40是常见范围。对于Meteor-M2 LRPTGNU Radio脚本在rtlsdr_m2_lrpt_rx.py中修改set_gain的值。Meteor信号通常较强增益可以设低一些。从4约4dB开始尝试。如果解码时medet输出的Packets数很少远低于理论值或者pos行显示的信号强度sig值一直很低如低于-300可以适当调高增益到10或15。切忌过高否则会出现大量误码。6.3 Meteor-M2解码参数与季节模式在receive_and_process_meteor.sh脚本中medet解码命令的参数-r 66 -g 65 -b 64指定了红、绿、蓝三个颜色通道对应的APID。这是针对Meteor-M2夏季模式的设置真彩色。Meteor-M2卫星在冬季通常北半球从10月到次年3月左右可能会将成像仪切换到红外通道模式。此时这三个APID对应的不再是可见光红绿蓝而是不同的红外和可见光通道组合。如果你在冬季发现解码出来的图像是绿色或单色的很可能需要切换模式。冬季模式常用的APID组合可能是-r 68 -g 65 -b 64具体需要根据卫星状态和社区反馈调整。你需要修改脚本中的medet命令行为medet/medet_arm ${3}.s $3 -r 68 -g 65 -b 64 -na -S同时冬季模式合成的可能是红外图像后续的convert合成命令也需要调整。原脚本中注释掉的“Winter only”部分就是为冬季模式准备的它会用两个相同的通道合成一个单色红外图像。你需要根据实际情况启用或调整这部分代码。关注气象卫星爱好者社区如RTL-SDR论坛、Reddit的rtlsdr板块的讨论是获取当前卫星模式信息的最佳途径。7. 实战问题排查与经验心得即使严格按照步骤操作第一次成功前也难免遇到各种问题。下面是我和众多爱好者总结的一些常见“坑”和解决方法。7.1 常见问题速查表问题现象可能原因排查步骤与解决方案rtl_test报错usb_claim_interface error -6内核驱动冲突1. 确认已创建/etc/modprobe.d/blacklist-rtl.conf并加入blacklist dvb_usb_rtl28xxu。2. 执行sudo rmmod dvb_usb_rtl28xxu。3. 重启树莓派。NOAA解码后图像全黑或全灰无内容未收到有效信号或频率偏差太大1. 用rtl_fm手动接收并监听音频timeout 60 rtl_fm -f 137.5M -s 48k -g 20 -p 你的PPM -E dc -A fast -Meteor-M2解码后只有.s文件没有.bmp文件medet解码失败1. 检查.s文件大小一次成功的过境应有100MB以上。太小说明信号没录上。2. 手动运行medet命令观察输出。如果Packets数为0或极少说明信号质量太差或参数错误。检查GNU Radio脚本中的频率必须是137.100000M、PPM和增益。3. 检查receive_and_process_meteor.sh脚本中if [ -f ${3}.bmp ]这一行。这是一个已知的脚本错误medet生成的是${3}_0.bmp等文件永远不会生成${3}.bmp。应将判断条件改为if [ -f ${3}_0.bmp ]; then。Meteor图像颜色怪异全绿、全紫等APID通道顺序错误或卫星处于冬季模式1. 确认当前季节和卫星模式。冬季需使用冬季APID如68,65,64并调整合成命令。2. 尝试交换medet命令中-r,-g,-b的参数顺序或尝试其他已知可用的APID组合如65,65,64。3. 手动用convert命令尝试不同的通道组合来合成图像。调度任务没有执行/var/mail/pi中有错误邮件脚本语法错误、路径错误或at命令未安装1. 检查/var/mail/pi文件内容less /var/mail/pi。错误信息会明确指出问题行。2. 常见错误脚本换行符问题在Windows编辑后传到Linux、变量引用错误、命令路径不对。3. 确保at守护进程已安装并运行sudo apt install at sudo systemctl enable --now atd。4. 手动运行一次schedule_all.sh看是否有错误输出。图像有规律的横条纹或“百叶窗”效应无线电频率干扰RFI1. 这是最常见的问题之一。干扰可能来自电脑、显示器、电源、USB设备等。2. 尝试将树莓派和RTL-SDR用USB延长线远离其他设备。3. 为RTL-SDR增加一个137MHz带通滤波器并确保天线放置在远离室内电子设备的位置。4. 尝试不同的增益设置有时降低增益可以减轻某些干扰的影响。7.2 图像优化与后期处理心得收到图像只是第一步如何让图像更美观、信息更丰富WxToImg的妙用对于NOAA图像wxtoimg的功能非常强大。除了基础的-e MSA多光谱外还可以尝试-e MSA-PSA增强型多光谱、-e HVCT海面温度等。你还可以在软件界面如果安装了桌面版或使用命令行参数进行对比度、亮度、锐化调整。Meteor图像的色彩平衡medet解码出的原始BMP文件色彩可能偏暗或偏色。在convert合成JPG时-normalize参数会自动拉伸对比度效果不错。你还可以尝试更精细的调整例如convert ${3}-rectified.png -auto-level -auto-gamma -quality 95 $3.jpg。地图叠加wxtoimg可以自动为NOAA图像叠加地图边界。确保你的树莓派联网并且wxtoimg已注册注册是免费的需要在官网申请密钥。对于Meteor图像社区有像MeteorDemod这样的工具可以后期叠加地图但这需要更复杂的配置超出了本文基础范围。数据管理接收到的音频.wav和中间文件.s非常大。建议在脚本最后阶段只保留最终的JPG/PNG图片其他文件及时删除。你也可以编写脚本定期将处理好的图片自动上传到网盘或NAS进行备份和展示。7.3 天线优化是永恒的主题我花了最多时间折腾的就是天线。从最初的简陋鞭状天线到精心计算制作的双十字天线再到最后效果卓越的QFH天线图像质量的提升是肉眼可见的。如果你的信号始终很弱不要急着升级接收机先问问自己天线位置真的开阔吗馈线是不是太长了接头的屏蔽层做好了吗一个放在窗边的小天线其效果永远无法与楼顶毫无遮挡的同类天线相提并论。最后保持耐心和探索的乐趣。气象卫星接收是一个融合了无线电、编程、机械和气象学的综合性爱好。第一次看到模糊的地球轮廓从噪声中浮现出来时的激动以及后续不断优化直到获得清晰彩色云图的过程正是这个项目最大的魅力所在。祝你成功接收到来自太空的问候