本附录提供了OGGM公共API的全面参考,按模块组织。每个条目包含函数/类的签名、关键参数、返回值和用途简述。本附录是参考资料而非教程——详细解释请参见相关章节。
oggm.cfg.initialize(file=None, logging_level='INFO')
参数: file (str, 可选) -- 用于覆盖默认参数的 params.cfg 文件路径。
logging_level (str) -- Python 日志级别。
返回值: None
从内置的 params.cfg 加载OGGM配置,应用用户提供的覆盖参数,
设置工作目录并配置日志系统。必须在大多数其他OGGM函数之前调用。
oggm.cfg.initialize_minimal(file=None)
参数: file (str, 可选) -- params.cfg 覆盖文件。
返回值: None
轻量级初始化,仅加载参数但不设置日志或工作目录。 适用于只需要读取参数的脚本。
oggm.cfg.set_logging_config(logging_level='INFO')
参数: logging_level (str) -- 可选值:'DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'。
使用指定级别配置OGGM日志记录器。由 initialize() 自动调用。
oggm.cfg.pack_config()
返回值: str -- 包含所有非默认参数和工作目录路径的JSON字符串。
将当前配置序列化以便复现。可以将输出保存到模型结果旁边, 以记录所使用的确切参数集。
oggm.cfg.unpack_config(json_str)
参数: json_str (str) -- 之前由 pack_config() 生成的JSON字符串。
从打包字符串恢复配置。用于重现之前运行的设置。
| 属性 | 类型 | 描述 |
|---|---|---|
cfg.PARAMS | DocumentedDict | 所有配置参数的有序字典,附带文档字符串 |
cfg.PATHS | dict | 工作目录、缓存目录和示例数据目录的路径 |
cfg.BASENAMES | DocumentedDict | 从逻辑名称到 (文件名, 描述) 的映射,用于冰川目录(GlacierDirectory)文件 |
cfg.DATA | dict | 运行时数据,如RGI元数据、DEM数据源和气候参考 |
class oggm.utils.GlacierDirectory(rgi_entity, base_dir=None, reset=False)
参数: rgi_entity (str, tuple或dict) -- RGI ID 字符串、RGI shapefile路径或
RGI元数据字典。 base_dir (str, 可选) -- 覆盖默认工作目录。
reset (bool) -- 如为True,清空现有目录内容。
单个冰川的核心数据容器。管理文件路径,提供读写方法, 并暴露冰川元数据。完整文档参见第7章。
@oggm.utils.entity_task(logger, writes=[])
参数: logger (str 或 logging.Logger) -- 日志记录器名称或实例。
writes (str列表) -- 该任务写入的 BASENAMES 键。
装饰器,用于包装单冰川处理函数。提供自动日志记录、错误处理
(通过 cfg.PARAMS['continue_on_error'])、计时和依赖追踪。被装饰的函数
必须以 GlacierDirectory 作为其第一个位置参数。
@oggm.utils.global_task(logger)
装饰器,用于全局任务(global task;而非单冰川任务),例如下载参考数据
或汇总结果。与 entity_task 类似,但不期望 GlacierDirectory 参数。
oggm.utils.get_demo_file(fname)
参数: fname (str) -- 文件名(如 'Hintereisferner_RGI5.shp')。
返回值: str -- 已下载/缓存示例文件的绝对路径。
从 oggm-sample-data 仓库下载(如需要)并返回文件路径。 教程和测试中不可或缺。
oggm.utils.monthly_timeseries(ini_date, end_date, cal=None)
参数: ini_date (datetime-like) -- 序列的起始时间。
end_date (datetime-like) -- 序列的结束时间(含)。
cal (str, 可选) -- 日历类型('standard', '365_day' 等)。
返回值: 按月频率的 pandas.DatetimeIndex。
创建月度时间索引,在OGGM中广泛用于气候和物质平衡时间序列。
oggm.core.gis.define_glacier_region(gdir, div_id=None)
参数: gdir (GlacierDirectory)。 div_id (int, 可选) -- 用于具有多个流域分界的冰川的排水分界ID。
使用冰川轮廓定义冰川的局部地图投影和空间域。
初始化 Salem 网格并写入 glacier_grid.json。
oggm.core.gis.process_dem(gdir)
下载并处理覆盖冰川的DEM瓦片。重投影到局部网格,
填充小型空洞,并写入 dem.tif。DEM数据源通过
cfg.PARAMS['dem_source'] 配置。
oggm.core.gis.glacier_masks(gdir)
从RGI轮廓多边形计算冰川网格掩膜。将 glacier_mask 和
glacier_topo(限制在冰川区域内的DEM)写入 gridded_data.nc。
oggm.core.gis.gridded_attributes(gdir)
计算冰川掩膜范围内每个网格单元的坡度、坡向和到轮廓的距离。
将多个变量写入 gridded_data.nc。
oggm.core.centerlines.compute_centerlines(gdir, div_id=None)
使用最小成本路径算法从冰川掩膜计算几何中心线。
处理多分支冰川。写入 centerlines.pkl。
oggm.core.centerlines.initialize_flowlines(gdir)
将几何中心线转换为模型流线,包含计算宽度、面积-高度
分布和适用于数值模拟的网格划分。写入 model_flowlines.pkl。
oggm.core.centerlines.catchment_area(gdir)
为每条中心线分支划分集水区。将 catchment_mask 写入
gridded_data.nc 和 geometries.pkl。
oggm.core.centerlines.compute_downstream_line(gdir)
计算冰川末端之外的下游中心线延伸段。用于可能超出 当前轮廓线前进的冰川。
oggm.core.centerlines.compute_downstream_bedshape(gdir)
确定下游冰床形状和流线交汇处的配置。
oggm.core.climate.process_climate_data(gdir, **kwargs)
根据 cfg.PARAMS['baseline_climate'] 分派到相应的数据商店模块。
处理冰川的气候数据并写入 climate_historical.nc。
同时校准物质平衡模型(写入 mb_calib.json)。
oggm.core.climate.historical_delta_method(gdir, **kwargs)
计算冰川位置处的温度和降水气候增量(GCM减去历史值)。
用于未来预估。写入带 _delta 后缀的气候文件。
oggm.core.climate.mb_calibration(gdir, **kwargs)
校准物质平衡模型参数(melt_f, temp_bias, prcp_fac),使其匹配 观测的大地测量物质平衡(geodetic mass balance)或用户指定的目标值。
oggm.core.climate.process_gcm_data(gdir, **kwargs)
处理冰川位置处的原始GCM输出,计算未来情景的月温度和 降水时间序列。
class oggm.core.massbalance.MassBalanceModel
所有物质平衡模型的抽象基类。子类必须实现
get_monthly_mb(heights, year, ...) 和 get_annual_mb(heights, year, ...)。
class oggm.core.massbalance.MonthlyTIModel(gdir, **kwargs)
标准的月度温度指数物质平衡模型。将积累量计算为固态降水比例, 将消融量通过度日法计算。
class oggm.core.massbalance.ConstantMassBalance(gdir, **kwargs)
用于未来预估的物质平衡模型。使用由历史数据叠加GCM异常 所导出的恒定(或增量调整的)气候信号。
class oggm.core.massbalance.PastMassBalance(gdir, **kwargs)
用于历史时期的物质平衡模型。使用来自
climate_historical.nc 的时变气候数据和校准后的温度指数模型(temperature-index model)。
class oggm.core.massbalance.MultipleFlowlineMassBalance(gdir, **kwargs)
管理多条流线(支流)物质平衡的包装器。将物质平衡计算 分派给每条流线并处理支流几何。
class oggm.core.massbalance.RandomMassBalance(gdir, **kwargs)
在校准均值周围带有随机变异性的物质平衡模型。用于 不确定性量化和集合模拟。
oggm.core.inversion.mass_conservation_inversion(gdir, **kwargs)
通过求解质量守恒方程计算沿流线的冰厚度:
通量散度等于表观物质平衡(apparent mass balance)。写入 inversion_input.pkl 和
inversion_output.pkl。关键参数由 cfg.PARAMS['glen_a']、
cfg.PARAMS['fs'] 和 cfg.PARAMS['inversion_glen_a'] 控制。
oggm.core.inversion.filter_inversion_output(gdir)
对原始反演输出应用后处理滤波:去除负厚度值,
使用高斯核平滑(宽度由 cfg.PARAMS['inversion_smoothing_radius']
控制),并确保末端附近的厚度单调递减。
oggm.core.inversion.prepare_for_inversion(gdir, **kwargs)
准备质量守恒反演的输入数据:计算表观物质平衡(apparent mass balance),
建立通量计算的线性方程组,并写入 inversion_input.pkl。
class oggm.core.flowline.FluxBasedModel(flowlines, mb_model=None, y0=0, glen_a=None, fs=None, ...)
主要的冰川演化模型。使用半隐式有限差分格式和 自适应时间步长求解浅冰近似方程以实现冰川厚度演化。 支持多流线、动态预热(dynamic spinup)和入海型冰川崩解。
class oggm.core.flowline.SemiImplicitModel(flowlines, mb_model=None, y0=0, glen_a=None, fs=None, ...)
简化的半隐式求解器,用于教学和调试目的。不如 FluxBasedModel 优化,但算法更透明。
oggm.core.flowline.flowline_model_run(gdir, model, ys, ye, store_diagnostics=True, ...)
便捷函数,从年份 ys 运行流线模型到 ye,并可选择
将诊断变量存储为NetCDF格式。处理完整生命周期:初始化、启动
(如已配置)、主运行和清理。
class oggm.core.flowline.FileModel(fpath)
从预先计算的NetCDF文件读取模型状态,而非运行求解器。适用于 对先前保存的运行进行后处理和分析。
oggm.workflow.init_glacier_directories(rgi_ids=None, from_prepro_level=None, prepro_border=10, ...)
参数: rgi_ids (list 或 str, 可选) -- 要初始化的RGI ID。如为None,查找所有现有的。
from_prepro_level (int, 可选) -- 所需预处理级别(prepro level)的位掩码(0=原始, 1=GIS完成, 2=中心线完成, 3=气候完成, 4=反演完成)。
prepro_border (int) -- 地图边界像素数。
返回值: GlacierDirectory列表
为一组RGI ID创建或加载冰川目录(GlacierDirectory)。这是任何OGGM工作流的标准入口点。
oggm.workflow.execute_entity_task(task, gdirs, **kwargs)
参数: task (可调用对象) -- 以 entity_task 装饰的函数。
gdirs (GlacierDirectory列表)。 **kwargs -- 转发给任务函数的参数。
在冰川列表上执行单冰川任务。如果
cfg.PARAMS['use_multiprocessing'] 为True,则在多个CPU核心上分配执行。
处理错误收集和日志记录。
oggm.workflow.gis_prepro_tasks(gdir, **kwargs)
便捷函数,按顺序运行所有GIS预处理任务:
define_glacier_region, process_dem, glacier_masks, gridded_attributes,
compute_centerlines, initialize_flowlines, catchment_area,
compute_downstream_line, compute_downstream_bedshape。
oggm.workflow.climate_tasks(gdir, **kwargs)
便捷函数,用于气候相关任务:process_climate_data 和
historical_delta_method。
oggm.workflow.inversion_tasks(gdir, **kwargs)
便捷函数,用于反演相关任务:prepare_for_inversion、
mass_conservation_inversion 和 filter_inversion_output。