GEE 里 Landsat C2L2 大气校正法反演 LST,让 Codex 走 TaoToken 对着 ST_TRAD 查
发布时间:2026/9/20 10:44:46 作者:尧图编辑部 阅读量:1,286

在 GEE 里用 Landsat C2L2 做大气校正法地表温度反演最容易卡住的往往不是“公式不会”而是代码里几个波段和常量对不上ST_TRAD 到底该放在 Lλ 的位置还是被误当成亮温ST_URAD、ST_DRAD、ST_ATRAN 有没有分别对应 Lu、Ld、τLandsat8 TIRS band10 的 K1、K2 是不是填成了 band11 的值。这篇就从排障视角出发把 Codex 接到 TaoToken 上让它只做一件事对照原文公式逐项检查你的 GEE JavaScript 代码。TaoToken 官网是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end 先拿到 Key再把 Codex 的 Base URL 指向 https://taotoken.net/api 后面就能让它帮你核对 ST_TRAD 是否作为 Lλ、ST_URAD 是否作为 Lu、ST_DRAD 是否作为 Ld、ST_ATRAN 是否作为 τ以及 K1774.8853、K21321.0789 有没有填对。一、原问题与场景大气校正法反演 LST 为什么总在细节上翻车GEE 里的 Landsat8 Collection2-Level2 数据已经把很多大气参数产品化了ST_TRAD、ST_URAD、ST_DRAD、ST_ATRAN 四个波段直接可用这本来省去了自己算大气剖面参数的麻烦。但真正写代码时问题会集中爆发在四个地方。第一处是植被覆盖度 Pv。NDVI 算出来之后有人用 0.05 和 0.7 做分段有人用 0.2 和 0.5 做分段阈值一变后面比辐射率 ε 就跟着变。更隐蔽的是NDVI 里如果混进了水体或者云边缘的异常值Pv 会出现负数或者大于 1 的情况如果不做 clampε 就会跑出合理范围。第二处是覃志豪经验公式。原文里水体、自然表面、城镇三种地表对应三套系数代码里通常写成一个 expression用 NDVI 做条件分支。常见错误是条件顺序写反或者把 Pv 和 NDVI 两个变量在 expression 里传错位置导致城镇地表的 ε 被算成了自然表面的值。第三处是黑体辐射亮度公式的代入。公式是B(Ts) [Lλ - Lu - τ(1-ε)Ld] / (τ·ε)其中 Lλ 是卫星传感器接收到的辐射亮度Lu 是大气上行辐射Ld 是大气下行辐射τ 是大气透射率ε 是地表比辐射率。对应到 C2L2 波段LλST_TRADLuST_URADLdST_DRADτST_ATRAN。很多人会把 ST_TRAD 直接当成亮温 BT 去套普朗克公式跳过了这一步大气校正结果反演出来的温度整体偏高或偏低。第四处是 K1、K2 的选取。Landsat8 TIRS band10 是 K1774.8853、K21321.0789band11 是 K1480.8883、K21201.1442。如果数据用的是 band10代码里却填了 band11 的常量温度会差出好几度。Landsat9 的 band10 又是另一组值K1799.0284、K21329.2405。传感器和波段一旦对不上后面所有计算都白做。这些错误单靠肉眼看代码很难发现因为公式本身不长变量名又相似。这时候让 Codex 走 TaoToken 通道把原文公式和你的代码一起丢给它让它逐项做“变量-波段-常量”的对照检查效率会高很多。TaoToken 在这里只提供 Key 和兼容通道不参与 GEE 反演、不替代 ST_TRAD 计算也不改普朗克公式它只是让你能稳定地把 Codex 用起来。二、TaoToken 前置拿 Key、配 Codex、确认通道在开始核对代码之前先把 Codex 的接入配通。打开 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end 注册后进入控制台创建 API Key。Key 的格式是 YOUR_API_KEY实际使用时替换成你自己的那一串。Codex 的配置入口在 config.toml。如果你用的是 Codex CLI配置文件通常放在用户目录下的 .codex/config.toml。需要改的核心是 Base URL 和模型名。Base URL 填 https://taotoken.net/api 注意这里不加 UTM 参数保持接口地址干净。模型 ID 根据你在 TaoToken 控制台里选的模型来填比如 claude-sonnet 系列或者 gpt 系列具体以控制台展示为准。一个最小化的 config.toml 片段长这样model 你的模型ID model_provider taotoken [model_providers.taotoken] name TaoToken base_url https://taotoken.net/api env_key TAOTOKEN_API_KEY然后在环境变量里设置 TAOTOKEN_API_KEYYOUR_API_KEY。如果你不想用环境变量也可以在 config.toml 里直接写 api_key但更推荐环境变量方式避免 Key 泄露。配好之后在终端里跑一次简单对话确认 Codex 能正常返回内容。如果返回 401说明 Key 没填对或者环境变量没生效如果返回 404检查 Base URL 是不是多写了斜杠或者少写了 /api。这一步通了后面才能让 Codex 帮你查 GEE 代码。如果你更习惯用命令行方式启动TaoToken 也提供了 CLI 工具。安装命令是npm i -g taotoken/taotoken启动 Codex 会话taotoken cc -k YOUR_API_KEY -u https://taotoken.net/api -m 你的模型ID这样就不用手动改 config.toml适合临时排查问题时快速起一个会话。三、可复制配置把 GEE 代码和公式一起交给 Codex 核对Codex 配通之后不要只丢一段代码过去问“对不对”。更有效的方式是把原文公式、波段对应关系、你的代码片段三样东西一起给它让它做结构化核对。你可以用下面这段提示词模板我在 GEE 里用 Landsat8 C2L2 做大气校正法地表温度反演请你对照公式逐项检查我的代码。 公式 B(Ts) [Lλ - Lu - τ(1-ε)Ld] / (τ·ε) 其中 LλST_TRADLuST_URADLdST_DRADτST_ATRAN。 ε 用覃志豪经验公式按 NDVI 分段计算水体和自然表面/城镇。 普朗克公式反演温度时Landsat8 TIRS band10 的 K1774.8853K21321.0789。 我的代码 粘贴你的 GEE JavaScript 代码 请检查 1. ST_TRAD 是否被正确当作 Lλ而不是直接当亮温 2. ST_URAD、ST_DRAD、ST_ATRAN 是否分别对应 Lu、Ld、τ 3. 覃志豪公式里 Pv 和 NDVI 的变量传递有没有错位 4. K1、K2 是否用了 band10 的值 5. 有没有遗漏开尔文转摄氏度。把这段提示词和你的代码一起发给 Codex它会逐条给出检查结果。如果某一项对不上它会指出具体是哪一行、哪个变量名有问题。这里要强调一点Codex 只负责对照公式检查代码逻辑它不会替你去 GEE 里跑数据也不会修改 ST_TRAD 的计算方式。TaoToken 提供的是模型调用通道GEE 里的反演逻辑仍然由你掌控。四、验证请求与成功结果怎么确认 Codex 真的在按公式核对发完提示词之后观察 Codex 的返回内容。一个有效的核对结果应该包含以下特征第一它会明确说出 ST_TRAD 在代码里被赋给了哪个变量以及这个变量在后续公式中出现在什么位置。如果它只说“看起来没问题”而没有指出具体变量名说明提示词还不够具体需要把代码里的变量名也写进提示词。第二它会检查 ST_URAD、ST_DRAD、ST_ATRAN 三个波段的顺序。常见错误是把 ST_URAD 和 ST_DRAD 写反因为这两个名字只差一个字母。Codex 应该能指出“你这里 Lu 用的是 ST_DRAD但公式里 Lu 应该对应 ST_URAD”。第三它会核对覃志豪公式里的条件分支。比如你的代码写的是var LSE ndvi.expression( b1 0 ? 0.995 : (b1 0.7 ? (0.9625 0.0614*Pv - 0.0461*Pv*Pv) : (0.9589 0.0860*Pv - 0.0671*Pv*Pv)), {Pv: Pv, b1: ndvi} );Codex 应该能指出b10 对应水体ε 取 0.995b10.7 对应城镇用第一组系数中间段对应自然表面用第二组系数。如果条件顺序写反它会提示你调整。第四它会检查 K1、K2。如果你的代码里写的是 774.89 和 1321.08Codex 可能会指出这与 band10 的标准值 774.8853 和 1321.0789 有细微差异建议统一用标准值。如果写的是 480.8883 和 1201.1442它会直接告诉你这是 band11 的值用错了波段。第五它会提醒你最后有没有做开尔文转摄氏度。普朗克公式算出来的是开尔文温度GEE 里通常需要减去 273.15 才是摄氏度。当 Codex 能逐条给出这些具体反馈时说明它确实在按公式核对而不是泛泛而谈。这时候你可以根据它的反馈去改代码改完再让它复查一遍直到所有项都对齐。五、本篇常见错排查ST_TRAD 相关的高频问题在实际排查中下面这几类错误出现频率最高可以优先检查。第一类ST_TRAD 被当成亮温直接进普朗克公式。这是最典型的错误。C2L2 的 ST_TRAD 是传感器接收到的热辐射亮度不是亮温。必须先经过大气校正公式算出 B(Ts)再用普朗克公式反演温度。如果跳过大气校正直接把 ST_TRAD 代入 K1、K2 的公式算出来的温度会明显偏离真实值。第二类ST_URAD 和 ST_DRAD 写反。公式里 Lu 是上行辐射Ld 是下行辐射对应到波段名ST_URAD 是上行ST_DRAD 是下行。代码里如果写成 LuST_DRAD、LdST_URAD大气校正项就会算错温度偏差通常在 1 到 3 摄氏度。第三类ST_ATRAN 没有参与计算或者被误当成 1。大气透射率 τ 在公式里同时出现在分子和分母如果直接令 τ1等于忽略大气吸收反演结果会偏高。C2L2 已经提供了 ST_ATRAN直接代入即可。第四类覃志豪公式里 Pv 和 NDVI 传参错位。expression 里的 b1 是 NDVIPv 是植被覆盖度两个变量在公式里的角色不同。如果传参时把 Pv 传成了 NDVI或者把 b1 传成了 Pv条件分支就会失效。第五类K1、K2 用了 band11 的值。Landsat8 的 band10 和 band11 常量不同band10 是 774.8853 和 1321.0789band11 是 480.8883 和 1201.1442。如果你的数据用的是 band10代码里却填了 band11 的常量温度会差出好几度。Landsat9 的 band10 又是 799.0284 和 1329.2405也要注意区分。第六类忘记开尔文转摄氏度。普朗克公式输出的是开尔文GEE 里做可视化或者导出时通常需要减去 273.15。如果发现结果在 300 左右大概率是没转摄氏度。遇到这些错误时可以把报错信息或者异常结果连同代码一起发给 Codex让它帮你定位。如果问题出在接入配置上比如 Codex 连不上、返回 401 或 404那就需要回到 API Keys 页面检查 Key 状态或者查看接入文档确认 Base URL 和模型名。TaoToken 的 API Keys 管理入口在控制台里接入文档里有各客户端的配置示例排障时优先看这两处。六、语义一致 CTA按你的下一步动作选入口如果你的问题已经定位到具体代码想让 Codex 继续帮你核对公式和变量可以直接打开模型对话页面把代码和公式贴进去让它逐项检查。模型对话入口在 TaoToken 控制台里选好模型就能开始。如果你还在配置 Codex 的阶段Base URL 填了但连不通或者不确定 config.toml 的字段怎么写先去 API Keys 页面确认 Key 是否有效再看接入文档里的 Codex 配置示例。API Keys 页面可以创建、查看和禁用 Key接入文档里有 config.toml 和 CLI 两种方式的完整说明。如果你不只是想排查这一个脚本而是打算长期用 Codex 做 GEE 代码审查、批量处理遥感反演任务或者把 Agent 接到日常工作流里可以了解一下 Coding Plan。它更适合高频、长期的编码辅助场景不用每次单独配 Key。不管走哪个入口核心逻辑是一样的TaoToken 提供 Key 和兼容通道Codex 负责对照公式检查代码GEE 里的反演计算仍然由你掌控。ST_TRAD 作为 Lλ、ST_URAD 作为 Lu、ST_DRAD 作为 Ld、ST_ATRAN 作为 τ这四个对应关系一旦对齐K1、K2 再按传感器选对大气校正法反演 LST 的代码就不会再在细节上翻车。