<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet href="/scripts/pretty-feed-v3.xsl" type="text/xsl"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:h="http://www.w3.org/TR/html4/"><channel><title>@晚风</title><description>每个优秀的人都有一段沉默的时光，那段时光是付出了很多努力，却得不到结果的日子，我们把它叫做扎根。</description><link>https://gemmae.dev</link><item><title>Windows OneDrive 同步服务内存泄漏排查与彻底禁用方案</title><link>https://gemmae.dev/blog/004-windows-onedrive-memory-leak-disable</link><guid isPermaLink="true">https://gemmae.dev/blog/004-windows-onedrive-memory-leak-disable</guid><description>排查 OneDrive.Sync.Service.exe 内存泄漏导致系统卡死的过程，以及通过组策略、自启动项与 IFEO 三层封锁彻底禁用 OneDrive 的方案。</description><pubDate>Thu, 30 Jul 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;Windows OneDrive 同步服务内存泄漏排查与彻底禁用方案&lt;/h1&gt;
&lt;h2&gt;0x00 问题现象&lt;/h2&gt;
&lt;p&gt;事情的起因很直接：电脑突然卡死。&lt;/p&gt;
&lt;p&gt;不是那种&quot;等一等能缓过来&quot;的卡，是鼠标不动、任务栏无响应、硬盘灯常亮、只能长按电源键强制关机的那种死机。&lt;/p&gt;
&lt;p&gt;重启后没当回事，结果第二天又复现了。打开任务管理器一看，内存占用已经飙到 95% 以上，而罪魁祸首是一个我之前根本没注意过的进程：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Microsoft OneDrive Sync Service
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;它一个人吃掉了将近 4 GB 内存，CPU 占用也在持续波动。&lt;/p&gt;
&lt;p&gt;我当时的第一反应是：我明明没有主动用过 OneDrive，这个服务为什么在后台跑？而且为什么能跑到把系统内存吃光？&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;0x01 排查：进程名与显示名不一致&lt;/h2&gt;
&lt;p&gt;确认是 OneDrive 的问题之后，我尝试在 PowerShell 里直接杀掉它：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;taskkill /f /im OneDrive.exe
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;返回结果：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;错误: 没有找到进程 &quot;OneDrive.exe&quot;。
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;但任务管理器里明明显示 OneDrive 同步服务正在运行。&lt;/p&gt;
&lt;p&gt;切到任务管理器的&quot;详细信息&quot;选项卡，按名称排序，才找到真正的进程名：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;OneDrive.Sync.Service.exe
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;也就是说，任务管理器里显示的友好名称是&quot;Microsoft OneDrive Sync Service&quot;，但实际进程名是 &lt;code&gt;OneDrive.Sync.Service.exe&lt;/code&gt;，和直觉中的 &lt;code&gt;OneDrive.exe&lt;/code&gt; 完全是两回事。&lt;/p&gt;
&lt;p&gt;这个命名不一致本身就是一个排查障碍。普通用户看到&quot;OneDrive&quot;，自然会去杀 &lt;code&gt;OneDrive.exe&lt;/code&gt;，结果系统告诉你没有这个进程，而真正的元凶还在后台继续吃内存。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;0x02 问题分析：OneDrive 到底在干什么&lt;/h2&gt;
&lt;p&gt;在解决&quot;怎么关掉它&quot;之前，我先搞清楚了几件事。&lt;/p&gt;
&lt;h3&gt;2.1 它不是&quot;复制一份到云端&quot;&lt;/h3&gt;
&lt;p&gt;OneDrive 的同步逻辑不是把文件复制一份上传，而是&lt;strong&gt;将本地常用目录（桌面、文档、图片）的实际路径迁移到 OneDrive 目录下&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;迁移前：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;C:\Users\&amp;#x3C;用户名&gt;\Desktop
C:\Users\&amp;#x3C;用户名&gt;\Documents
C:\Users\&amp;#x3C;用户名&gt;\Pictures
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;迁移后：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;C:\Users\&amp;#x3C;用户名&gt;\OneDrive\Desktop
C:\Users\&amp;#x3C;用户名&gt;\OneDrive\Documents
C:\Users\&amp;#x3C;用户名&gt;\OneDrive\Pictures
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这不是备份，是路径劫持。原始路径被重定向，文件实体被移动。对上层应用来说，&quot;我的文档&quot;还在，但底层文件系统结构已经变了。&lt;/p&gt;
&lt;h3&gt;2.2 文件夹结构先于文件内容创建&lt;/h3&gt;
&lt;p&gt;OneDrive 在同步过程中，会先在云端（或本地同步目录）创建完整的文件夹树结构，文件内容随后逐步上传。&lt;/p&gt;
&lt;p&gt;这意味着在同步未完成时，你会看到：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;OneDrive/
├── 项目资料/        ← 文件夹存在
│   └── (空)         ← 文件尚未上传
├── 学习材料/        ← 文件夹存在
│   └── (空)         ← 文件尚未上传
└── 图片/            ← 文件夹存在
    └── (部分文件)    ← 上传进行中
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果此时网络中断、服务异常、或用户误判同步状态，就可能出现&quot;文件夹都在，内容丢了&quot;的情况。&lt;/p&gt;
&lt;h3&gt;2.3 取消链接 ≠ 停止服务&lt;/h3&gt;
&lt;p&gt;我在 OneDrive 设置中取消了账号链接，预期是服务随之停止。但实际上，&lt;code&gt;OneDrive.Sync.Service.exe&lt;/code&gt; 仍然在后台运行，继续占用 CPU 和内存。&lt;/p&gt;
&lt;p&gt;取消链接只是断开了云端认证，本地同步服务进程的生命周期并不受此控制。&lt;/p&gt;
&lt;h3&gt;2.4 内存占满的直接原因&lt;/h3&gt;
&lt;p&gt;在大量文件待同步、同步状态异常、或网络不稳定的情况下，&lt;code&gt;OneDrive.Sync.Service.exe&lt;/code&gt; 会出现内存持续增长且不释放的行为。具体表现为：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;工作集（Working Set）持续膨胀&lt;/li&gt;
&lt;li&gt;提交大小（Commit Size）远超实际文件传输所需&lt;/li&gt;
&lt;li&gt;无自动回收机制，直到系统可用内存耗尽&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;最终结果就是系统整体无响应，只能强制重启。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;0x03 解决方案：三层封锁&lt;/h2&gt;
&lt;p&gt;我的需求很明确：&lt;strong&gt;不卸载 OneDrive（避免系统组件依赖问题），但彻底阻止其任何进程运行。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;最终采用了三层策略。&lt;/p&gt;
&lt;h3&gt;第一层：组策略禁用同步功能&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;reg add &quot;HKLM\Software\Policies\Microsoft\Windows\OneDrive&quot; /v DisableFileSyncNGSC /t REG_DWORD /d 1 /f
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;作用：禁止 OneDrive 执行文件同步逻辑。&lt;/p&gt;
&lt;p&gt;局限：不阻止 exe 本身启动。进程可以运行，只是不进行同步。单独依赖这一层无法解决内存占用问题。&lt;/p&gt;
&lt;h3&gt;第二层：移除开机自启动&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;reg delete &quot;HKCU\Software\Microsoft\Windows\CurrentVersion\Run&quot; /v OneDrive /f
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;作用：阻止 OneDrive 在用户登录时自动启动。&lt;/p&gt;
&lt;p&gt;局限：仅针对自动启动。手动执行或系统服务触发仍可运行。&lt;/p&gt;
&lt;h3&gt;第三层：IFEO 调试器劫持（核心）&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;reg add &quot;HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\OneDrive.exe&quot; /v Debugger /t REG_SZ /d &quot;C:\Windows\System32\cmd.exe /c exit&quot; /f

reg add &quot;HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\OneDrive.Sync.Service.exe&quot; /v Debugger /t REG_SZ /d &quot;C:\Windows\System32\cmd.exe /c exit&quot; /f

reg add &quot;HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\OneDriveStandaloneUpdater.exe&quot; /v Debugger /t REG_SZ /d &quot;C:\Windows\System32\cmd.exe /c exit&quot; /f
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;作用：在 Windows 内核创建进程阶段进行拦截。当系统尝试启动上述任何一个 exe 时，内核读取 IFEO 注册表项，发现配置了 Debugger，于是将实际启动目标替换为 &lt;code&gt;cmd.exe /c exit&lt;/code&gt;。cmd 执行 &lt;code&gt;exit&lt;/code&gt; 后立即退出，目标进程从未真正运行。&lt;/p&gt;
&lt;p&gt;这一层是内核级拦截，发生在进程创建之前，优先级高于任何应用层逻辑。无论是双击启动、服务触发、计划任务调用还是其他进程拉起，只要最终调用的是这三个 exe，都会被劫持为空操作。&lt;/p&gt;
&lt;h3&gt;刷新策略并验证&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;gpupdate /force
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;验证是否还有残留进程：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;tasklist | findstr /i &quot;onedrive&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;无输出即为干净。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;0x04 验证：误触启动是否有效&lt;/h2&gt;
&lt;p&gt;完成上述配置后，我测试了&quot;如果不小心双击了 OneDrive.exe 会怎样&quot;。&lt;/p&gt;
&lt;p&gt;结果：无任何进程出现。可能观察到命令行窗口闪烁一帧（即 &lt;code&gt;cmd.exe&lt;/code&gt; 被启动并立即退出），任务管理器中不会出现任何 OneDrive 相关进程。&lt;/p&gt;
&lt;p&gt;| 触发方式                           | 实际行为                         |
| ---------------------------------- | -------------------------------- |
| 双击 OneDrive.exe                  | IFEO 劫持 → cmd /c exit → 无进程 |
| 双击 OneDrive.Sync.Service.exe     | 同上                             |
| 双击 OneDriveStandaloneUpdater.exe | 同上                             |
| 系统服务尝试拉起                   | 同上，内核层拦截                 |
| 开机自启（已删除启动项）           | 不会触发                         |&lt;/p&gt;
&lt;p&gt;三层叠加后，正常路径下 OneDrive 无法运行。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;0x05 注意事项与边界情况&lt;/h2&gt;
&lt;h3&gt;Windows 大版本更新可能重置注册表&lt;/h3&gt;
&lt;p&gt;功能更新（如 23H2 → 24H2）有可能清除 IFEO 条目。更新后建议验证：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;reg query &quot;HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\OneDrive.exe&quot; /v Debugger
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;返回&quot;找不到指定的注册表项或值&quot;则说明被重置，需重新执行第三层命令。&lt;/p&gt;
&lt;h3&gt;进程名可能随版本变化&lt;/h3&gt;
&lt;p&gt;当前方案仅覆盖了三个已知进程名。如果 OneDrive 后续更新引入新的可执行文件（如 &lt;code&gt;OneDriveSetup.exe&lt;/code&gt;、&lt;code&gt;FileSyncHelper.exe&lt;/code&gt; 等），这些不在 IFEO 名单中的进程仍可运行。&lt;/p&gt;
&lt;p&gt;定期检查：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;tasklist | findstr /i &quot;onedrive&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;文件恢复&lt;/h3&gt;
&lt;p&gt;如果 OneDrive 已经接管了桌面/文档/图片路径，在禁用服务之前，先将重要文件复制到非 OneDrive 路径：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;D:\LocalBackup\
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;不要直接删除 OneDrive 目录，避免同步状态异常导致文件丢失。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;0x06 总结&lt;/h2&gt;
&lt;p&gt;| 层级 | 手段                       | 作用               | 能否阻止进程运行 |
| ---- | -------------------------- | ------------------ | ---------------- |
| 1    | 组策略 DisableFileSyncNGSC | 禁止同步功能       | ✗                |
| 2    | 删除 Run 启动项            | 阻止开机自启       | ✗                |
| 3    | IFEO Debugger 劫持         | 内核级进程创建拦截 | ✓                |&lt;/p&gt;
&lt;p&gt;单独使用任何一层都不够。组策略管不住进程启动，启动项管不住手动触发，只有 IFEO 是在进程创建之前由内核强制介入的。&lt;/p&gt;
&lt;p&gt;OneDrive 的核心问题不在于同步功能本身，而在于：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;默认接管用户目录，无显式确认&lt;/li&gt;
&lt;li&gt;同步状态不透明，文件夹结构与文件内容不同步&lt;/li&gt;
&lt;li&gt;取消链接后服务不停止&lt;/li&gt;
&lt;li&gt;进程显示名与实际进程名不一致，增加排查成本&lt;/li&gt;
&lt;li&gt;异常状态下内存无上限增长，无自保护机制&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;对于一个系统级预装组件来说，这些设计决策的代价最终由用户承担。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;环境：Windows 11 23H2 / OneDrive 24.x&lt;/em&gt;
&lt;em&gt;操作日期：2026-07-30&lt;/em&gt;&lt;/p&gt;</content:encoded><h:img src="/_astro/hero.Crv6VBn6.jpg"/><enclosure url="/_astro/hero.Crv6VBn6.jpg"/></item><item><title>讯飞星辰 MaaS 免费领取 Qwen3.6 模型 API 教程</title><link>https://gemmae.dev/blog/003-xfyun-maas-qwen-free-api</link><guid isPermaLink="true">https://gemmae.dev/blog/003-xfyun-maas-qwen-free-api</guid><description>记录如何在讯飞星辰 MaaS 模型集市领取免费的 Qwen3.6-35B-A3B，并拿到 modelId、OpenAI 兼容接口地址和 API Key。</description><pubDate>Thu, 04 Jun 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;最近在讯飞星辰 MaaS 平台看到 &lt;code&gt;Qwen3.6-35B-A3B&lt;/code&gt; 可以限时免费调用，而且支持 OpenAI 兼容接口。对于想折腾 AI 编程工具、本地客户端、OpenAI 兼容代理，或者只是想白嫖一点大模型 API 额度的朋友来说，这个入口还是挺香的。&lt;/p&gt;
&lt;p&gt;这篇文章记录一下完整流程：从模型集市找到免费 Qwen 模型，到创建推理服务，再到复制 &lt;code&gt;modelId&lt;/code&gt;、接口地址和 API Key。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;说明：免费模型、免费时间、额度和限流规则可能会变化，最终以讯飞星辰 MaaS 控制台页面显示为准。&lt;br&gt;
另外，API Key 千万不要放到公开仓库、博客截图或前端代码里。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;一、进入讯飞星辰 MaaS 模型集市&lt;/h2&gt;
&lt;p&gt;先打开讯飞星辰 MaaS 平台的模型集市：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;https://maas.xfyun.cn/modelSquare?ch=MaaS-jgkol-l7P2y
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;进入后，在左侧菜单选择 &lt;strong&gt;模型集市&lt;/strong&gt;。页面里能看到很多模型卡片，例如 DeepSeek、Kimi、GLM、Spark、Qwen 等。&lt;/p&gt;
&lt;p&gt;在右侧找到 &lt;code&gt;Qwen3.6-35B-A3B&lt;/code&gt;，卡片右上角会显示 &lt;strong&gt;限时免费&lt;/strong&gt;，然后点击卡片里的 &lt;strong&gt;API调用&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://gemmae.dev/_astro/xfyun-maas-qwen-01-model-square.D6h3vKt3_Z26x2Rr.webp&quot; alt=&quot;在讯飞星辰 MaaS 模型集市找到 Qwen3.6-35B-A3B，并点击 API 调用&quot;&gt;&lt;/p&gt;
&lt;p&gt;这里注意，不要只是点&quot;体验&quot;。如果你想拿到接口信息，需要点的是 &lt;strong&gt;API调用&lt;/strong&gt;。&lt;/p&gt;
&lt;h2&gt;二、进入模型详情页，确认模型信息&lt;/h2&gt;
&lt;p&gt;进入模型详情页后，可以先看一下模型基础信息。&lt;/p&gt;
&lt;p&gt;我这里看到的是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;模型名称：&lt;code&gt;Qwen3.6-35B-A3B&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;模型类型：多模态&lt;/li&gt;
&lt;li&gt;推理上下文长度：&lt;code&gt;128k&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;支持输入模态：文本、图像&lt;/li&gt;
&lt;li&gt;支持输出模态：文本&lt;/li&gt;
&lt;li&gt;推理价格：输入 &lt;code&gt;0 元/百万tokens&lt;/code&gt;，输出 &lt;code&gt;0 元/百万tokens&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://gemmae.dev/_astro/xfyun-maas-qwen-02-model-detail.Df8h3D7q_1dXMkL.webp&quot; alt=&quot;Qwen3.6-35B-A3B 模型详情页，显示限时免费、128k 上下文和 0 元价格&quot;&gt;&lt;/p&gt;
&lt;p&gt;页面右侧有 &lt;strong&gt;API调用&lt;/strong&gt; 按钮。确认是自己要用的模型后，继续点击 &lt;strong&gt;API调用&lt;/strong&gt; 进入服务配置。&lt;/p&gt;
&lt;h2&gt;三、创建模型推理服务&lt;/h2&gt;
&lt;p&gt;点击 &lt;strong&gt;API调用&lt;/strong&gt; 后，会进入模型服务配置流程。&lt;/p&gt;
&lt;p&gt;这一步一般需要填写：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;服务名称：自己起一个名字即可，例如 &lt;code&gt;QodeWork&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;授权应用：选择一个已有应用&lt;/li&gt;
&lt;li&gt;如果没有应用，就先创建应用，再回来绑定&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;创建完成后，可以在左侧菜单进入：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;模型推理 -&gt; 推理服务
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后在模型服务列表里找到刚刚创建的服务。&lt;/p&gt;
&lt;h2&gt;四、复制调用信息&lt;/h2&gt;
&lt;p&gt;在推理服务详情页右侧，可以看到服务的实时用量和调用信息。&lt;/p&gt;
&lt;p&gt;这里重点复制三样东西：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;modelId&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;OpenAI 接口地址&lt;/li&gt;
&lt;li&gt;API Key&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://gemmae.dev/_astro/xfyun-maas-qwen-03-api-info.Bs9VYWHS_I0Wqt.webp&quot; alt=&quot;在推理服务页面查看调用信息，复制 modelId、OpenAI 接口地址和 API Key&quot;&gt;&lt;/p&gt;
&lt;h3&gt;1. modelId&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;modelId&lt;/code&gt; 在左侧服务卡片中可以看到。这个不是模型展示名称，而是实际调用时要填到 &lt;code&gt;model&lt;/code&gt; 字段里的值。&lt;/p&gt;
&lt;p&gt;比如我这里示例是：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;xopqwen36v35b
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;后面在支持 OpenAI 兼容接口的软件里，模型名称就填这个 &lt;code&gt;modelId&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;不要填成：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;Qwen3.6-35B-A3B
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;很多人接入失败，就是因为把展示名称当成了接口里的模型名。&lt;/p&gt;
&lt;h3&gt;2. OpenAI 兼容接口地址&lt;/h3&gt;
&lt;p&gt;在调用信息里可以看到 OpenAI 接口地址：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;https://maas-api.cn-huabei-1.xf-yun.com/v2
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;很多软件里这个字段可能叫：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Base URL&lt;/li&gt;
&lt;li&gt;API Base&lt;/li&gt;
&lt;li&gt;OpenAI Base URL&lt;/li&gt;
&lt;li&gt;OpenAI Compatible Endpoint&lt;/li&gt;
&lt;li&gt;自定义 OpenAI 地址&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;填的时候只填到 &lt;code&gt;/v2&lt;/code&gt;，不要自己再额外拼 &lt;code&gt;/chat/completions&lt;/code&gt;。&lt;/p&gt;
&lt;h3&gt;3. API Key&lt;/h3&gt;
&lt;p&gt;API Key 在服务接口认证信息里复制。&lt;/p&gt;
&lt;p&gt;这里一定要注意：&lt;strong&gt;不要把真实 API Key 写进博客、GitHub 仓库、前端项目或公开截图里。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;如果你要写教程，建议像我这样把关键字段打码，只展示接口地址和配置方法即可。&lt;/p&gt;
&lt;h2&gt;五、在 OpenAI 兼容工具里怎么填&lt;/h2&gt;
&lt;p&gt;如果你的工具支持 OpenAI 兼容接口，一般这样配置：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;Base URL: https://maas-api.cn-huabei-1.xf-yun.com/v2
API Key: 你的 API Key
Model: xopqwen36v35b
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果你领取的是别的模型，比如 &lt;code&gt;Qwen3.5-35B-A3B&lt;/code&gt;，就把 &lt;code&gt;Model&lt;/code&gt; 改成对应服务页面显示的 &lt;code&gt;modelId&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;通用 JSON 配置大概是这样：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-json&quot;&gt;{
  &quot;baseURL&quot;: &quot;https://maas-api.cn-huabei-1.xf-yun.com/v2&quot;,
  &quot;apiKey&quot;: &quot;你的 API Key&quot;,
  &quot;model&quot;: &quot;xopqwen36v35b&quot;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;六、用 Python 简单测试&lt;/h2&gt;
&lt;p&gt;如果想先确认接口是否能正常调用，可以用 OpenAI SDK 简单测一下。&lt;/p&gt;
&lt;p&gt;先安装依赖：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;pip install openai
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后新建测试文件：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;from openai import OpenAI

client = OpenAI(
    api_key=&quot;你的 API Key&quot;,
    base_url=&quot;https://maas-api.cn-huabei-1.xf-yun.com/v2&quot;
)

response = client.chat.completions.create(
    model=&quot;xopqwen36v35b&quot;,
    messages=[
        {&quot;role&quot;: &quot;user&quot;, &quot;content&quot;: &quot;你好，简单介绍一下你自己。&quot;}
    ],
    temperature=0.7,
    max_tokens=1024
)

print(response.choices[0].message.content)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果能正常返回内容，就说明下面三项都正确：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;API Key 正确&lt;/li&gt;
&lt;li&gt;Base URL 正确&lt;/li&gt;
&lt;li&gt;modelId 正确&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;七、常见问题&lt;/h2&gt;
&lt;h3&gt;1. 为什么我填 Qwen3.6-35B-A3B 报错？&lt;/h3&gt;
&lt;p&gt;因为 &lt;code&gt;Qwen3.6-35B-A3B&lt;/code&gt; 是模型展示名称，实际调用时要填控制台生成的 &lt;code&gt;modelId&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;例如：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;xopqwen36v35b
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;具体以你的服务页面显示为准。&lt;/p&gt;
&lt;h3&gt;2. OpenAI 接口地址后面要不要加 /chat/completions？&lt;/h3&gt;
&lt;p&gt;一般不用。&lt;/p&gt;
&lt;p&gt;在大多数 OpenAI 兼容客户端里，只需要填：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;https://maas-api.cn-huabei-1.xf-yun.com/v2
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;客户端会自动拼接后面的接口路径。&lt;/p&gt;
&lt;h3&gt;3. 能不能把 API Key 直接写进前端项目？&lt;/h3&gt;
&lt;p&gt;不建议，千万不要这样做。&lt;/p&gt;
&lt;p&gt;前端代码会暴露给用户，API Key 很容易被别人扒出来。更安全的方式是：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;API Key 放在后端环境变量里&lt;/li&gt;
&lt;li&gt;前端请求自己的后端接口&lt;/li&gt;
&lt;li&gt;后端再去请求讯飞星辰 MaaS&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;4. Qwen3.5-35B-A3B 也是一样的流程吗？&lt;/h3&gt;
&lt;p&gt;是的，流程基本一样。&lt;/p&gt;
&lt;p&gt;只要在模型集市里找到 &lt;code&gt;Qwen3.5-35B-A3B&lt;/code&gt;，点击 &lt;strong&gt;API调用&lt;/strong&gt;，创建服务后复制对应的 &lt;code&gt;modelId&lt;/code&gt;、OpenAI 接口地址和 API Key 即可。&lt;/p&gt;
&lt;h3&gt;5. 普通 MaaS 和 Coding Plan 是不是同一个地址？&lt;/h3&gt;
&lt;p&gt;不是一个概念。&lt;/p&gt;
&lt;p&gt;这篇文章讲的是模型集市里的普通 MaaS 推理服务，OpenAI 接口地址是：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;https://maas-api.cn-huabei-1.xf-yun.com/v2
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果你使用的是 Coding Plan 相关服务，页面可能会显示另一套接口地址，不要混用。&lt;/p&gt;
&lt;h2&gt;八、总结&lt;/h2&gt;
&lt;p&gt;整体流程其实很简单：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;打开讯飞星辰 MaaS 模型集市&lt;/li&gt;
&lt;li&gt;找到 &lt;code&gt;Qwen3.6-35B-A3B&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;点击 &lt;strong&gt;API调用&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;创建或绑定应用&lt;/li&gt;
&lt;li&gt;进入 &lt;strong&gt;模型推理 -&gt; 推理服务&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;复制 &lt;code&gt;modelId&lt;/code&gt;、OpenAI 接口地址和 API Key&lt;/li&gt;
&lt;li&gt;在支持 OpenAI 兼容接口的工具里填写&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;目前我这里看到的关键信息是：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;模型：Qwen3.6-35B-A3B
OpenAI 接口地址：https://maas-api.cn-huabei-1.xf-yun.com/v2
示例 modelId：xopqwen36v35b
价格：输入 0 元/百万tokens，输出 0 元/百万tokens
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;免费额度和活动时间可能随时变化，想薅的朋友建议先去控制台看一下当前是否还显示 &lt;strong&gt;限时免费&lt;/strong&gt;。&lt;/p&gt;</content:encoded><h:img src="/_astro/hero.CZptr_HI.jpg"/><enclosure url="/_astro/hero.CZptr_HI.jpg"/></item><item><title>使用ERA5 (Instantaneous 10m wind gust) 数据，绘制2024年1月和7月全球月平均极大风速分布图</title><link>https://gemmae.dev/blog/002-era5-wind-gust-2024</link><guid isPermaLink="true">https://gemmae.dev/blog/002-era5-wind-gust-2024</guid><description>介绍 ERA5 数据下载（CDS 手动下载 / Python API 下载）、使用 Python 处理 NC 数据并计算月平均 10 米极大风速，最后绘制 2024 年 1 月和 7 月全球分布图。</description><pubDate>Tue, 08 Jul 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;1 数据&lt;/h2&gt;
&lt;p&gt;ERA5（fifth generation ECMWF atmospheric reanalysis of the global climate）是由欧洲中期天气预报中心（European Centre for Medium-Range Weather Forecasts，ECMWF）开发和维护的一种全球范围内的高分辨率大气&lt;strong&gt;再分析数据集&lt;/strong&gt;，提供了多种气象和气候变量的连续、一致和高质量的数据。&lt;/p&gt;
&lt;p&gt;ERA5 基于全球观测数据、数值模型和物理参数化方案，通过数据同化和数值模拟的技术，对过去数十年（1940 年至今）的天气状况进行再构建和模拟，从而生成了高时空分辨率的大气和地表变量数据。&lt;/p&gt;
&lt;p&gt;ERA5 提供了广泛的气象和气候变量，包括温度、湿度、风速、降水、云量、地表辐射、地表温度等。这些数据以固定的时间间隔（逐小时或逐月）和空间分辨率（从数公里到数十公里）提供，可以用于气候研究、天气分析、气候模型验证、环境监测等众多应用领域。&lt;/p&gt;
&lt;h2&gt;2 下载方法（全程需要科学上网）&lt;/h2&gt;
&lt;h3&gt;2.1 准备工作&lt;/h3&gt;
&lt;p&gt;首先我们需要从哥白尼气候数据存储 (Copernicus Climate Data Store - CDS) 下载 ERA5 数据。访问 CDS 网站并登录：&lt;a href=&quot;https://cds.climate.copernicus.eu/&quot;&gt;https://cds.climate.copernicus.eu/&lt;/a&gt;。（如果是首次使用，请注册一个免费账号并登录。）点击注册按钮，使用邮箱注册填写相关信息即可，不做过多阐述，注册成功后会向注册的邮箱发送一封激活账号的邮件。点击邮件里面的链接即可激活账号登录。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://gemmae.dev/_astro/01.B3iZm3J7_tBzVt.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://gemmae.dev/_astro/02.C2IY_9Ab_Z14zEbY.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;图 1 注册与账号激活操作界面&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;接下来我们需要配置运行 Python 程序的环境，这里我们选用的是 Anaconda 或者 Miniconda（轻量级版本），Anaconda 是一个用于管理 Python 环境和软件包的工具。按照以下的指令即可完成 Python 程序运行环境的配置。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://gemmae.dev/_astro/03.Cb2W5l_0_ZEWWGY.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;后续需要用到的 python 包可以使用 &lt;code&gt;pip install&lt;/code&gt; 安装。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://gemmae.dev/_astro/04.swSAF3rn_ZP7729.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;图 2 Python 运行环境配置&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;2.2 手动下载&lt;/h3&gt;
&lt;p&gt;我们需要选择正确的数据集，在 CDS 网站上，导航到或直接访问以下链接：&lt;a href=&quot;https://cds.climate.copernicus.eu/datasets/reanalysis-era5-single-levels&quot;&gt;ERA5 hourly data on single levels from 1940 to present&lt;/a&gt;，搜索：ERA5 hourly data on single levels from 1940 to present（ERA5 每小时单层数据，时间范围从 1940 年至今），选择列表中的第一条数据。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://gemmae.dev/_astro/05.YaNXPbgV_Z2972gp.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;图 3 ERA5 hourly data on single levels from 1940 to present&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;接下来需要配置下载参数，在数据集页面，点击 &quot;Download data&quot; 选项卡。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Product type（产品类型）&lt;/strong&gt;：选择 Reanalysis。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Variable（变量）&lt;/strong&gt;：找到并勾选 &lt;strong&gt;10 metre wind gust（10 米极大风速）&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Year（年份）&lt;/strong&gt;：选择 2024。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Month（月份）&lt;/strong&gt;：分别选择 January（1 月）和 July（7 月）。您可以一次性选择这两个月，CDS 通常会生成两个独立的文件。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Day（日期）&lt;/strong&gt;：选择 All。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Time（时间）&lt;/strong&gt;：选择 All。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Geographical area（地理区域）&lt;/strong&gt;：保持默认的 Global（全球）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Format（格式）&lt;/strong&gt;：选择 NetCDF (experimental)。虽然标记为实验性质，但是在使用 Python 脚本解析 NC 数据时候会非常方便。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;在确认所有选择无误后，点击页面底部的 Show Form，然后点击 Submit Form。开始下载，CDS 服务器会根据您的请求准备数据，这可能需要一些时间。&lt;/p&gt;
&lt;p&gt;数据准备好后，页面上会出现一个下载链接。点击链接将文件下载到本地存储文件夹。记住文件的存储位置和文件名（&lt;code&gt;era5_wind_gust_2024_01.nc&lt;/code&gt; 和 &lt;code&gt;era5_wind_gust_2024_07.nc&lt;/code&gt;）。&lt;/p&gt;
&lt;h3&gt;2.3 通过 Python 使用 API 下载&lt;/h3&gt;
&lt;p&gt;官方提供了 API 请求数据接口，如下图所示，点击 API，但是这里需要配置一下 url 和 api key。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://gemmae.dev/_astro/06.DAMTyCQH_ZQ4tHi.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;图 4 API 下载入口&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://gemmae.dev/_astro/07.CK4_FGzw_Z1XhVcF.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;图 5 URL 与 API Key 配置&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;使用下面的代码进行 API 请求数据，请求之后，其实可以跳转到官方页面使用浏览器下载，程序的控制台下载较为缓慢且容易中断。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://gemmae.dev/_astro/08.DuoLhcLr_BLHaR.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://gemmae.dev/_astro/09.DCRhKinV_Z2eR9cP.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;图 6 官网请求之后的数据下载界面&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;稍微等待一会儿即可下载完成，注意配置好自己的下载路径。&lt;/p&gt;
&lt;h2&gt;3 数据处理&lt;/h2&gt;
&lt;p&gt;下载得到的 NC 数据主要有以下内容：原始 NC 文件（&lt;code&gt;era5_wind_gust_2024_01.nc&lt;/code&gt; 和 &lt;code&gt;era5_wind_gust_2024_07.nc&lt;/code&gt;）包含以下维度与变量：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;维度（Dimensions）：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;valid_time&lt;/code&gt;：时间维度（744 个时间点，对应 1 月份 31 天 × 24 小时 = 744 小时）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;latitude&lt;/code&gt;：纬度维度（721 个点，从 90°N 到 90°S）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;longitude&lt;/code&gt;：经度维度（1440 个点，0° 到 359.75°，间隔 0.25°）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;坐标变量（Coordinates）：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;number&lt;/code&gt;：一个标量（大小为 8 字节）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;valid_time&lt;/code&gt;：时间坐标（数据类型为 &lt;code&gt;datetime64[ns]&lt;/code&gt;）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;latitude&lt;/code&gt;：纬度坐标（从 90 到 -90，间隔 0.25°）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;longitude&lt;/code&gt;：经度坐标（从 0 到 359.75，间隔 0.25°）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;expver&lt;/code&gt;：实验版本（字符串，每个时间点都有一个，例如 &apos;0001&apos;）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;数据变量（Data variables）：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;i10fg&lt;/code&gt;：瞬时 10 米风速（单位：m/s），这是一个三维数组（时间 × 纬度 × 经度）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;属性（Attributes）：&lt;/strong&gt;
包括数据来源（ECMWF）、参数 ID（&lt;code&gt;GRIB_paramId&lt;/code&gt;）、单位（m/s）等。&lt;/p&gt;
&lt;p&gt;这段代码是前置需要配置的一些中文字体和打印输出语句，用来显示进度。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://gemmae.dev/_astro/10.BFmYMbx9_aBBLT.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;下面的这段代码是进行第一步加载数据，加载 Dataset 对象并且找到正确的 10 米极大风速变量名。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://gemmae.dev/_astro/11.1M_rJ3i7_AGs2R.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;第二步是计算月平均极大风速。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://gemmae.dev/_astro/12.2jSZMZ51_Z10TiIS.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;第三步绘制全球分布图。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://gemmae.dev/_astro/13.CPBYdH7Y_JpaLO.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://gemmae.dev/_astro/14.BMSkbJON_Z1jfKCB.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h2&gt;4 结果&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://gemmae.dev/_astro/15.vlYs9rWq_15KX7Y.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;图 7 2024 年 1 月全球月平均 10 米极大风速分布图（300dpi）&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://gemmae.dev/_astro/05.DjlYTDvm_u0yLV.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;图 8 2024 年 7 月全球月平均 10 米极大风速分布图（300dpi）&lt;/p&gt;
&lt;/blockquote&gt;</content:encoded><h:img src="/_astro/15.vlYs9rWq.png"/><enclosure url="/_astro/15.vlYs9rWq.png"/></item><item><title>【ENVI】Landsat9 影像数据打开方式</title><link>https://gemmae.dev/blog/001-envi-landsat9-open</link><guid isPermaLink="true">https://gemmae.dev/blog/001-envi-landsat9-open</guid><description>针对 ENVI 5.3 无法直接打开 Landsat 9 影像的问题，通过修改 Landsat 9 原始 MTL.txt 元数据头文件，使其被 ENVI 识别为 Landsat 8 格式进行打开。</description><pubDate>Mon, 25 Mar 2024 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;1. 环境准备&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;版本：&lt;strong&gt;ENVI 5.3&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Landsat 影像数据来源：美国地质勘探局（可能需要魔法）&lt;/li&gt;
&lt;li&gt;在线图库：&lt;a href=&quot;https://www.usgs.gov/&quot;&gt;USGS.gov | Science for a changing world&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;2. 打开方式&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;方法：修改头文件（MTL.txt）。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;首先，打开下载数据的 &lt;strong&gt;Landsat 9 数据的 TXT 格式&lt;/strong&gt;元数据文件，下图中 &lt;code&gt;LC09_L1TP_119039_20240303_20240303_02_T1_MTL.txt&lt;/code&gt; 文件：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://gemmae.dev/_astro/01.DGaFHNHz_ZBRrtU.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;进入后将首行 &lt;code&gt;GROUP = LANDSAT_METADATA_FILE&lt;/code&gt; 改为 &lt;code&gt;GROUP = L1_METADATA_FILE&lt;/code&gt;：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://gemmae.dev/_astro/02.DZFsOAu1_2rvCzj.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;更改为：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://gemmae.dev/_astro/03.BXMW1PAN_Z65RlP.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Ctrl + F&lt;/code&gt; 查找 &lt;code&gt;GROUP = LEVEL1_PROCESSING_RECORD&lt;/code&gt;，分别在第 110 行和 153 行左右出现两处：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://gemmae.dev/_astro/04.CuJD1E6Q_Z2Nnae.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://gemmae.dev/_astro/05.DjlYTDvm_u0yLV.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h3&gt;删除 &lt;code&gt;GROUP = LEVEL1_PROCESSING_RECORD&lt;/code&gt; 到 &lt;code&gt;END_GROUP = LEVEL1_PROCESSING_RECORD&lt;/code&gt; 这部分的代码&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://gemmae.dev/_astro/06.CzqHRwKq_ZYaCoS.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Ctrl + F&lt;/code&gt; 查找 &lt;code&gt;SPACECRAFT_ID = &quot;LANDSAT_9&quot;&lt;/code&gt; 更改为 &lt;code&gt;SPACECRAFT_ID = &quot;LANDSAT_8&quot;&lt;/code&gt;：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://gemmae.dev/_astro/07.D7hH34x1_Z1GHh4M.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://gemmae.dev/_astro/08.CJ_7YUeB_20HOYg.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;找到文件最后的 &lt;code&gt;END_GROUP = LANDSAT_METADATA_FILE&lt;/code&gt; 改为 &lt;code&gt;END_GROUP = L1_METADATA_FILE&lt;/code&gt;：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://gemmae.dev/_astro/09.BNLzE0W3_1SsWkA.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://gemmae.dev/_astro/10.Oonqkwcn_ZeuAVP.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;然后就可以在 ENVI 中正常打开啦。&lt;/p&gt;</content:encoded><h:img src="/_astro/04.CuJD1E6Q.png"/><enclosure url="/_astro/04.CuJD1E6Q.png"/></item></channel></rss>