附录A API参考

本附录提供了OGGM公共API的全面参考,按模块组织。每个条目包含函数/类的签名、关键参数、返回值和用途简述。本附录是参考资料而非教程——详细解释请参见相关章节。

A.1 oggm.cfg -- 配置与初始化

模块级函数

initialize()

oggm.cfg.initialize(file=None, logging_level='INFO')

参数: file (str, 可选) -- 用于覆盖默认参数的 params.cfg 文件路径。 logging_level (str) -- Python 日志级别。

返回值: None

从内置的 params.cfg 加载OGGM配置,应用用户提供的覆盖参数, 设置工作目录并配置日志系统。必须在大多数其他OGGM函数之前调用。

initialize_minimal()

oggm.cfg.initialize_minimal(file=None)

参数: file (str, 可选) -- params.cfg 覆盖文件。

返回值: None

轻量级初始化,仅加载参数但不设置日志或工作目录。 适用于只需要读取参数的脚本。

set_logging_config(logging_level='INFO')

oggm.cfg.set_logging_config(logging_level='INFO')

参数: logging_level (str) -- 可选值:'DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'。

使用指定级别配置OGGM日志记录器。由 initialize() 自动调用。

pack_config()

oggm.cfg.pack_config()

返回值: str -- 包含所有非默认参数和工作目录路径的JSON字符串。

将当前配置序列化以便复现。可以将输出保存到模型结果旁边, 以记录所使用的确切参数集。

unpack_config(json_str)

oggm.cfg.unpack_config(json_str)

参数: json_str (str) -- 之前由 pack_config() 生成的JSON字符串。

从打包字符串恢复配置。用于重现之前运行的设置。

关键属性

属性类型描述
cfg.PARAMSDocumentedDict所有配置参数的有序字典,附带文档字符串
cfg.PATHSdict工作目录、缓存目录和示例数据目录的路径
cfg.BASENAMESDocumentedDict从逻辑名称到 (文件名, 描述) 的映射,用于冰川目录(GlacierDirectory)文件
cfg.DATAdict运行时数据,如RGI元数据、DEM数据源和气候参考

A.2 oggm.utils -- 工具函数与GlacierDirectory

GlacierDirectory(rgi_entity, base_dir=None, reset=False)

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章

entity_task(logger, writes=[])

@oggm.utils.entity_task(logger, writes=[])

参数: logger (str 或 logging.Logger) -- 日志记录器名称或实例。 writes (str列表) -- 该任务写入的 BASENAMES 键。

装饰器,用于包装单冰川处理函数。提供自动日志记录、错误处理 (通过 cfg.PARAMS['continue_on_error'])、计时和依赖追踪。被装饰的函数 必须以 GlacierDirectory 作为其第一个位置参数。

global_task(logger)

@oggm.utils.global_task(logger)

装饰器,用于全局任务(global task;而非单冰川任务),例如下载参考数据 或汇总结果。与 entity_task 类似,但不期望 GlacierDirectory 参数。

get_demo_file(fname)

oggm.utils.get_demo_file(fname)

参数: fname (str) -- 文件名(如 'Hintereisferner_RGI5.shp')。

返回值: str -- 已下载/缓存示例文件的绝对路径。

从 oggm-sample-data 仓库下载(如需要)并返回文件路径。 教程和测试中不可或缺。

monthly_timeseries(ini_date, end_date, cal=None)

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中广泛用于气候和物质平衡时间序列。

A.3 oggm.core.gis -- GIS处理

define_glacier_region(gdir, div_id=None)

oggm.core.gis.define_glacier_region(gdir, div_id=None)

参数: gdir (GlacierDirectory)。 div_id (int, 可选) -- 用于具有多个流域分界的冰川的排水分界ID。

使用冰川轮廓定义冰川的局部地图投影和空间域。 初始化 Salem 网格并写入 glacier_grid.json

process_dem(gdir)

oggm.core.gis.process_dem(gdir)

下载并处理覆盖冰川的DEM瓦片。重投影到局部网格, 填充小型空洞,并写入 dem.tif。DEM数据源通过 cfg.PARAMS['dem_source'] 配置。

glacier_masks(gdir)

oggm.core.gis.glacier_masks(gdir)

从RGI轮廓多边形计算冰川网格掩膜。将 glacier_maskglacier_topo(限制在冰川区域内的DEM)写入 gridded_data.nc

gridded_attributes(gdir)

oggm.core.gis.gridded_attributes(gdir)

计算冰川掩膜范围内每个网格单元的坡度、坡向和到轮廓的距离。 将多个变量写入 gridded_data.nc

A.4 oggm.core.centerlines -- 中心线与流线处理

compute_centerlines(gdir, div_id=None)

oggm.core.centerlines.compute_centerlines(gdir, div_id=None)

使用最小成本路径算法从冰川掩膜计算几何中心线。 处理多分支冰川。写入 centerlines.pkl

initialize_flowlines(gdir)

oggm.core.centerlines.initialize_flowlines(gdir)

将几何中心线转换为模型流线,包含计算宽度、面积-高度 分布和适用于数值模拟的网格划分。写入 model_flowlines.pkl

catchment_area(gdir)

oggm.core.centerlines.catchment_area(gdir)

为每条中心线分支划分集水区。将 catchment_mask 写入 gridded_data.ncgeometries.pkl

compute_downstream_line(gdir)

oggm.core.centerlines.compute_downstream_line(gdir)

计算冰川末端之外的下游中心线延伸段。用于可能超出 当前轮廓线前进的冰川。

compute_downstream_bedshape(gdir)

oggm.core.centerlines.compute_downstream_bedshape(gdir)

确定下游冰床形状和流线交汇处的配置。

A.5 oggm.core.climate -- 气候数据处理

process_climate_data(gdir, **kwargs)

oggm.core.climate.process_climate_data(gdir, **kwargs)

根据 cfg.PARAMS['baseline_climate'] 分派到相应的数据商店模块。 处理冰川的气候数据并写入 climate_historical.nc。 同时校准物质平衡模型(写入 mb_calib.json)。

historical_delta_method(gdir, **kwargs)

oggm.core.climate.historical_delta_method(gdir, **kwargs)

计算冰川位置处的温度和降水气候增量(GCM减去历史值)。 用于未来预估。写入带 _delta 后缀的气候文件。

mb_calibration(gdir, **kwargs)

oggm.core.climate.mb_calibration(gdir, **kwargs)

校准物质平衡模型参数(melt_f, temp_bias, prcp_fac),使其匹配 观测的大地测量物质平衡(geodetic mass balance)或用户指定的目标值。

process_gcm_data(gdir, **kwargs)

oggm.core.climate.process_gcm_data(gdir, **kwargs)

处理冰川位置处的原始GCM输出,计算未来情景的月温度和 降水时间序列。

A.6 oggm.core.massbalance -- 物质平衡模型

MassBalanceModel

class oggm.core.massbalance.MassBalanceModel

所有物质平衡模型的抽象基类。子类必须实现 get_monthly_mb(heights, year, ...)get_annual_mb(heights, year, ...)

MonthlyTIModel(gdir, **kwargs)

class oggm.core.massbalance.MonthlyTIModel(gdir, **kwargs)

标准的月度温度指数物质平衡模型。将积累量计算为固态降水比例, 将消融量通过度日法计算。

ConstantMassBalance(gdir, **kwargs)

class oggm.core.massbalance.ConstantMassBalance(gdir, **kwargs)

用于未来预估的物质平衡模型。使用由历史数据叠加GCM异常 所导出的恒定(或增量调整的)气候信号。

PastMassBalance(gdir, **kwargs)

class oggm.core.massbalance.PastMassBalance(gdir, **kwargs)

用于历史时期的物质平衡模型。使用来自 climate_historical.nc 的时变气候数据和校准后的温度指数模型(temperature-index model)。

MultipleFlowlineMassBalance(gdir, **kwargs)

class oggm.core.massbalance.MultipleFlowlineMassBalance(gdir, **kwargs)

管理多条流线(支流)物质平衡的包装器。将物质平衡计算 分派给每条流线并处理支流几何。

RandomMassBalance(gdir, **kwargs)

class oggm.core.massbalance.RandomMassBalance(gdir, **kwargs)

在校准均值周围带有随机变异性的物质平衡模型。用于 不确定性量化和集合模拟。

A.7 oggm.core.inversion -- 冰厚反演

mass_conservation_inversion(gdir, **kwargs)

oggm.core.inversion.mass_conservation_inversion(gdir, **kwargs)

通过求解质量守恒方程计算沿流线的冰厚度: 通量散度等于表观物质平衡(apparent mass balance)。写入 inversion_input.pklinversion_output.pkl。关键参数由 cfg.PARAMS['glen_a']cfg.PARAMS['fs']cfg.PARAMS['inversion_glen_a'] 控制。

filter_inversion_output(gdir)

oggm.core.inversion.filter_inversion_output(gdir)

对原始反演输出应用后处理滤波:去除负厚度值, 使用高斯核平滑(宽度由 cfg.PARAMS['inversion_smoothing_radius'] 控制),并确保末端附近的厚度单调递减。

prepare_for_inversion(gdir, **kwargs)

oggm.core.inversion.prepare_for_inversion(gdir, **kwargs)

准备质量守恒反演的输入数据:计算表观物质平衡(apparent mass balance), 建立通量计算的线性方程组,并写入 inversion_input.pkl

A.8 oggm.core.flowline -- 冰川动力学

FluxBasedModel(flowlines, mb_model, y0, glen_a, fs, ...)

class oggm.core.flowline.FluxBasedModel(flowlines, mb_model=None, y0=0, glen_a=None, fs=None, ...)

主要的冰川演化模型。使用半隐式有限差分格式和 自适应时间步长求解浅冰近似方程以实现冰川厚度演化。 支持多流线、动态预热(dynamic spinup)和入海型冰川崩解。

SemiImplicitModel(flowlines, mb_model, y0, glen_a, fs, ...)

class oggm.core.flowline.SemiImplicitModel(flowlines, mb_model=None, y0=0, glen_a=None, fs=None, ...)

简化的半隐式求解器,用于教学和调试目的。不如 FluxBasedModel 优化,但算法更透明。

flowline_model_run(gdir, model, ys, ye, ...)

oggm.core.flowline.flowline_model_run(gdir, model, ys, ye, store_diagnostics=True, ...)

便捷函数,从年份 ys 运行流线模型到 ye,并可选择 将诊断变量存储为NetCDF格式。处理完整生命周期:初始化、启动 (如已配置)、主运行和清理。

FileModel(fpath)

class oggm.core.flowline.FileModel(fpath)

从预先计算的NetCDF文件读取模型状态,而非运行求解器。适用于 对先前保存的运行进行后处理和分析。

A.9 oggm.workflow -- 工作流编排

init_glacier_directories(rgi_ids, ...)

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工作流的标准入口点。

execute_entity_task(task, gdirs, **kwargs)

oggm.workflow.execute_entity_task(task, gdirs, **kwargs)

参数: task (可调用对象) -- 以 entity_task 装饰的函数。 gdirs (GlacierDirectory列表)。 **kwargs -- 转发给任务函数的参数。

在冰川列表上执行单冰川任务。如果 cfg.PARAMS['use_multiprocessing'] 为True,则在多个CPU核心上分配执行。 处理错误收集和日志记录。

gis_prepro_tasks(gdir, **kwargs)

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

climate_tasks(gdir, **kwargs)

oggm.workflow.climate_tasks(gdir, **kwargs)

便捷函数,用于气候相关任务:process_climate_datahistorical_delta_method

inversion_tasks(gdir, **kwargs)

oggm.workflow.inversion_tasks(gdir, **kwargs)

便捷函数,用于反演相关任务:prepare_for_inversionmass_conservation_inversionfilter_inversion_output

A.10 类层次结构

MassBalanceModel (ABC) ├── MonthlyTIModel ├── ConstantMassBalance ├── PastMassBalance └── RandomMassBalance Flowline └── MixedBedFlowline FlowlineModel ├── FluxBasedModel ├── SemiImplicitModel └── FileModel GlacierDirectory └── (管理单冰川文件I/O) MassBalanceModel ──包装──> MultipleFlowlineMassBalance MultipleFlowlineMassBalance ──使用──> GlacierDirectory FluxBasedModel ──使用──> MultipleFlowlineMassBalance FluxBasedModel ──包含──> MixedBedFlowline[]
← 第22章 OGGM教程全集 附录B 参数参考手册 →