Python时间序列模型使用河流-地下水-泵水数据计算地下水位下降

方法

时间序列模型表示对观察井中不同应力对水头的作用的独立估计, 应用多模型方法来确定哪些水文应力与描述观测井中的水头动力学相关。

降水过剩、河流水位和地下水抽取被列为潜在相关的水文压力。 每个头部时间序列测试了八种不同的模型结构。 最简单的模型仅考虑降水过剩,由降水和潜在蒸发量计算得出。 下一个模型将河流阶段添加为压力。 在接下来的三个模型中,最多添加三个井场作为潜在应力,从最近的井场开始向最远的井场移动。 最后三个模型重复这最后一步,忽略河流作为压力。

最好的模型结构是从每个观测井的可靠模型集中选出的。 拆分样本测试,其中一部分时间序列保持独立,用于测试校准模型。

时间序列模型

时间序列建模方法,也称为传递函数噪声建模,使用基于物理的脉冲响应函数来描述头部对不同压力的响应。 降水过剩、河流水位变化和噪声建模的影响模拟基于 Von Asmuth 等人的标准方法。 时间序列模型写为

h ( t ) = ∑ m = 1 M h m ( t ) + d + r ( t ) h(t)=\sum_{m=1}^M h_m(t)+d+r(t) h(t)=m=1Mhm(t)+d+r(t)

模型校准

数据集准备


import json
import logging
import sys

sys.path.insert(1, "..")
from util import get_pastastore

logging.basicConfig(level=logging.INFO)

with open("../tsa_settings.json", "r") as f:
    settings = json.load(f)

name = f"frontiers_{settings['freq']}"
pstore = get_pastastore(name, settings["connector_type"])
conn = pstore.conn

prec = hpd.ObsCollection.from_knmi(xmid=oseries.x, ymid=oseries.y,
                                   meteo_vars=["RH"], start=["1980-01-01"],
                                   ObsClass=[hpd.PrecipitationObs])

evap = hpd.ObsCollection.from_knmi(xmid=oseries.x, ymid=oseries.y,
                                   meteo_vars=["EV24"], start=["1980-01-01"],
                                   ObsClass=[hpd.EvaporationObs])

# %% write to store

for o in tqdm(prec.loc[:, "obs"].values, desc="Add precipitation series"):

    meta = _get_metadata_from_obs(o)
    # convert to mm/day
    conn.add_stress(o["RH"] * 1e3, o.name, "prec",
                    metadata=meta, overwrite=True)

for o in tqdm(evap.loc[:, "obs"].values, desc="Add evaporation series"):

    meta = _get_metadata_from_obs(o)
    # convert to mm/day
    conn.add_stress(o["EV24"] * 1e3, o.name, "evap",
                    metadata=meta, overwrite=True)

读取数据

建模和模型选择

数据结果可视化

源代码

参阅 - 亚图跨际
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值