【高斯函数】

发布于:2025-05-21 ⋅ 阅读:(22) ⋅ 点赞:(0)
import numpy as np
import matplotlib.pyplot as plt

def gaussian(x, mu, sigma):
    """高斯函数"""
    return np.exp(-((x - mu) ** 2) / (2 * sigma ** 2)) / (sigma * np.sqrt(2 * np.pi))

# 参数设置
start_wavenumber = 635  # 起始波数 (cm^-1)
end_wavenumber = 1135   # 结束波数 (cm^-1)
step = 0.625            # 步长 (cm^-1)
sigma = np.sqrt(2.5)     # 标准差 (sigma^2 = 方差 = 2.5)

# 生成高斯函数的中心波数
centers = np.arange(start_wavenumber, end_wavenumber + step, step)
num_gaussians = len(centers)
print(f"Number of Gaussian functions: {num_gaussians}")  # 应该输出777

# 生成x轴数据
x = np.linspace(600, 1200, 5000)  # 适当扩大范围以便观察

# 初始化叠加后的信号
total_signal = np.zeros_like(x)

# 叠加所有高斯函数
for center in centers:
    total_signal += gaussian(x, center, sigma)

# 绘制图像
plt.figure(figsize=(10, 6))
plt.plot(x, total_signal, 'b-', linewidth=1.5)
plt.title('Superposition of 777 Gaussian Functions')
plt.xlabel('Wavenumber (cm$^{-1}$)')
plt.ylabel('Intensity')
plt.grid(True)
plt.show()
import numpy as np
import matplotlib.pyplot as plt

def gaussian(x, mu, sigma):
    """高斯函数"""
    return np.exp(-((x - mu) ** 2) / (2 * sigma ** 2)) / (sigma * np.sqrt(2 * np.pi))

# 参数设置(保持不变)
start_wavenumber = 635  # 起始波数 (cm^-1)
end_wavenumber = 1135   # 结束波数 (cm^-1)
step = 0.625            # 步长 (cm^-1)
sigma = np.sqrt(0.05)     # 标准差 (sigma^2 = 方差 = 2.5)

# 生成高斯函数的中心波数(保持不变)
centers = np.arange(start_wavenumber, end_wavenumber + step, step)
num_gaussians = len(centers)
print(f"Number of Gaussian functions: {num_gaussians}")  # 应该输出777

# 生成x轴数据(仅调整显示范围)
x = np.linspace(735, 785, 2000)  # 聚焦到735-785 cm^-1范围

# 初始化叠加后的信号
total_signal = np.zeros_like(x)

# 叠加所有高斯函数(保持不变)
for center in centers:
    total_signal += gaussian(x, center, sigma)

# 绘制图像(仅调整x轴范围)
plt.figure(figsize=(10, 6))
plt.plot(x, total_signal, 'b-', linewidth=1.5)
plt.title('Superposition of Gaussian Functions (735-785 cm$^{-1}$)')
plt.xlabel('Wavenumber (cm$^{-1}$)')
plt.ylabel('Intensity')
plt.xlim(735, 785)  # 确保x轴范围锁定
plt.grid(True)
plt.show()

import numpy as np
import matplotlib.pyplot as plt

def gaussian(x, mu, sigma):
    """高斯函数"""
    return np.exp(-((x - mu) ** 2) / (2 * sigma ** 2)) / (sigma * np.sqrt(2 * np.pi))

# 更新后的参数设置
start_wavenumber = 648.75  # 新的起始波数 (cm^-1)
end_wavenumber = 1136.25   # 新的结束波数 (cm^-1)
step = 0.625               # 步长保持不变 (cm^-1)
sigma = np.sqrt(0.05)       # 标准差 (sigma^2 = 方差 = 2.5)

# 生成高斯函数的中心波数
centers = np.arange(start_wavenumber, end_wavenumber + step/2, step)  # 加step/2避免浮点误差
num_gaussians = len(centers)
print(f"Number of Gaussian functions: {num_gaussians}")  # 应该输出781

# 生成x轴数据(显示范围735-785 cm^-1)
x = np.linspace(735, 785, 2000)  # 聚焦到735-785 cm^-1范围

# 初始化叠加后的信号
total_signal = np.zeros_like(x)

# 叠加所有高斯函数
for center in centers:
    total_signal += gaussian(x, center, sigma)

# 绘制图像
plt.figure(figsize=(10, 6))
plt.plot(x, total_signal, 'b-', linewidth=1.5)
plt.title('Superposition of 781 Gaussian Functions (735-785 cm$^{-1}$)')
plt.xlabel('Wavenumber (cm$^{-1}$)')
plt.ylabel('Intensity')
plt.xlim(735, 785)  # 确保x轴范围锁定
plt.grid(True)
plt.show()

要获取 **CrIS(Cross-track Infrared Sounder)**的光谱响应函数(Spectral Response Function, SRF),可以从以下几个官方或权威数据源获取:


1. NOAA CLASS(Comprehensive Large Array-data Stewardship System)

  • 网址https://www.avl.class.noaa.gov
  • 说明
    • NOAA CLASS 是 NOAA 官方数据存档系统,存储包括 CrIS 在内的卫星仪器数据。
    • 搜索 CrIS SRF(Spectral Response Function)CrIS Instrument Characteristics 相关文件。
    • 通常以 HDF5 或 NetCDF 格式提供。

2. NOAA STAR(Center for Satellite Applications and Research)

  • 网址https://www.star.nesdis.noaa.gov
  • 说明
    • NOAA STAR 提供 CrIS 的仪器特性文档,包括 SRF 数据。
    • JPSS (Joint Polar Satellite System) 相关页面查找 CrIS 的 Calibration/ValidationInstrument Performance 数据。

3. University of Wisconsin-Madison SSEC(Space Science and Engineering Center)

  • 网址https://www.ssec.wisc.edu
  • 说明
    • SSEC 提供 CrIS 的 SRF 数据,通常用于科学研究和交叉验证。
    • 可在 CrIS Data AccessInstrument Characterization 部分查找。

4. NASA Earthdata(Earth Science Data Systems)

  • 网址https://earthdata.nasa.gov
  • 说明
    • NASA Earthdata 提供 Suomi NPP 和 NOAA-20 的 CrIS 数据,包括 SRF。
    • Earthdata Search 中搜索 “CrIS Spectral Response Function”

5. CrIS官方文档(User Guides & ATBDs)

  • CrIS SDR User Guide(可在 NOAA 或 NASA 官网获取)
  • Algorithm Theoretical Basis Document (ATBD)(描述 SRF 的计算方法)
  • JPSS CrIS Instrument Data Record (IDR) Documentation

6. GitHub 或科学论文

  • 一些研究机构或科学家可能会公开 CrIS SRF 数据,例如:
    • GitHub 上的大气遥感数据处理项目(如 PyCrisCrIS-SRFs)。
    • 发表在 IEEE TGRSAMTJGR 上的论文可能包含 SRF 数据。

数据格式

CrIS SRF 通常以 HDF5/NetCDFASCII 格式存储,包含:

  • 波长/波数(cm⁻¹)
  • 归一化响应值(0~1)
  • 通道信息(LWIR, MWIR, SWIR)

总结

建议优先从 NOAA CLASSNASA Earthdata 下载官方 SRF 数据,以确保准确性。如果需要更详细的计算方法,可查阅 CrIS ATBD 或相关论文。

要下载 CrIS(Cross-track Infrared Sounder) 的数据,可以通过以下官方和科学数据平台获取:


1. NOAA CLASS(官方数据存档)

网址:https://www.avl.class.noaa.gov
打不开
适用数据

  • Suomi NPP、NOAA-20、NOAA-21 的 CrIS SDR(Sensor Data Record)EDR(Environmental Data Record)
  • 数据格式:HDF5(.h5)或 NetCDF(.nc
    下载步骤
  1. 注册账号(需提供机构邮箱)。
  2. 在搜索栏输入 CrIS SDRCrIS EDR
  3. 选择时间范围、卫星(如 JPSS-1 对应 NOAA-20)。
  4. 下载数据。

2. NASA Earthdata(NASA 官方数据门户)

网址:https://earthdata.nasa.gov
适用数据

  • Suomi NPP、NOAA-20 的 CrIS 数据(包括 L1B 辐射率数据
  • 可通过 Earthdata Search 直接筛选:
    https://search.earthdata.nasa.gov
    下载步骤
  1. 搜索 CrIS,选择 Level 1BLevel 2
  2. 使用 时间/区域筛选(支持 KML 文件绘制范围)。
  3. 直接下载或通过 wget 批量获取。
    可能可以找到

3. NOAA STAR(卫星应用与研究数据中心)

网址:https://www.star.nesdis.noaa.gov
适用数据

  • 近实时(NRT)CrIS 数据
  • 科研级再处理数据(如 CrIS FSR 全光谱分辨率数据
    下载入口
  • CrIS SDR/EDR 数据:https://www.star.nesdis.noaa.gov/socd/cris/

4. University of Wisconsin-Madison SSEC(威斯康星大学数据服务)

网址:https://www.ssec.wisc.edu
适用数据

  • CrIS 亮温数据(Brightness Temperature)
  • 可视化工具(如 CIMSS CrIS Viewer
    下载方式
  • 访问 https://cimss.ssec.wisc.edu/cris/ ,选择 FTP 下载。

5. Copernicus Open Access Hub(欧洲哥白尼计划)

网址:https://scihub.copernicus.eu
适用数据

  • MetOp 系列卫星的 IASI 数据(与 CrIS 类似的高光谱红外数据)
  • 需注册后下载。

6. 其他科研机构(如 UCAR/NCAR)

网址:https://rda.ucar.edu
适用数据

  • 再分析的 CrIS 数据(需申请权限)。

数据格式说明

数据类型 文件格式 典型变量
CrIS SDR(L1B) HDF5(.h5 Radiance(辐射率)、Latitude/Longitude
CrIS EDR(L2) NetCDF(.nc Temperature(温度廓线)、H2O(水汽)

批量下载方法(Python/wget)

1. 使用 wget 下载 NOAA CLASS 数据

wget --user=你的账号 --password=你的密码 -r -np -nH --cut-dirs=5 -A ".h5" https://www.avl.class.noaa.gov/JPSS/CRIS-SDR/

2. 使用 Python 下载(Earthdata)

import requests
from earthaccess import auth, store

auth.login()  # 登录 Earthdata
results = store.search(short_name="CRIS_SDR", temporal=("2024-01-01", "2024-01-02"))
files = store.download(results, "./criss_data/")

总结

数据需求 推荐平台 备注
官方原始数据(SDR/EDR) NOAA CLASS 需注册,数据最全
科研分析(L1B/L2) NASA Earthdata 支持区域筛选
近实时(NRT)数据 NOAA STAR 适合气象业务应用
可视化工具 SSEC CIMSS 在线浏览亮温图

如果需要特定日期/区域的 CrIS 数据,可以提供详细信息,我可以推荐更精确的下载方式! 🛰️