气象学家公众号 发表于 2024-4-12 23:50:16

实用编程 | 气象上常见的评分函数及其Python实现

本帖最后由 气象学家公众号 于 2024-4-15 22:39 编辑

1 简介
气象部门在发布预报时,发布的是一定区域范围的网格化(或站点化)的气象要素结果,以降水预报为例,


[*]先将预报区域划分为60 * 60(视空间分辨率而定,空间分辨率越高,格点数值越大) 的网格,每个网格上都存在对应的降水预报值。
[*]事后需要对预测结果进行检验,如图1,左图为14时的预报结果y_pre,右图为真实观测结果y_obs,异同明显。那如何衡量预报好坏呢?即如何衡量预报场(y_pre) 与 观测场(真值y_obs) 的异同程度呢?
[*]主要采取二分类思想进行评价。但针对不同需求,气象上有许多预报准确度评价指标。


图114时的降水预测与观测值对比


2 评价指标及其python实现
2.1 二分类介绍
假设有两个类别,正和负,分别用1,0表示,如下表格。


该表格称为 混淆矩阵(confusion matrix)。

TN : 真阴性。实际为0,预测为0.

TP : 真阳性。实际为1,预测为1.


[*]FN:假阳性。实际为0,预测为1.
[*]FP:   假阴性。实际为1,预测为0.
[*]召回率(Recall):R=TP/(TP+FN),指的是被预测为正例的占总的正例的比重;
[*]精准度(precision):P = TP/(TP+FP) ,指被分类器判定正例中的正样本的比重;
[*]准确率(Accuracy):A = (TP+TN)/(TP+FN+FP+TN) ,反映了分类器对整个样本的判定能力,也就是说能将正
[*]的判定为正,负的判定为负。
[*]F1为:

在实际应用中,我们不仅希望Accuracy高,还希望模型对每个类别都有很强的分类能力,即recall 和 precision都要高。

2.2 降水评价
2.2.1 气象二分类指标
气象上的降水评价指标基本都建立在二分类基础上。

以上面的y_pre 和 y_obs 为例,共计有3600个格点,选定一个阈值rain_threshold ,格点数值 >= rain_threshold 即为正例, 否则为负例。这里采取晴雨分类,即rain_threshold = 0.1

构建混淆矩阵,晴为负例,雨为正例,如下:


[*]Recall: R=TP/(TP+FN)= 1122/(1122 + 458) = 0.71
[*]precision: p = TP/(TP + FP) = 1122/(1122 + 52) =0.95
[*]Accuracy: (TP + TN)/(TN + FP + FN + TP) = 0.86

类比到气象上,概念一致,只是换了名称。

代码如下:
def prep_clf(obs,pre, threshold=0.1):
    '''
    func: 计算二分类结果-混淆矩阵的四个元素
    inputs:
      obs: 观测值,即真实值;
      pre: 预测值;
      threshold: 阈值,判别正负样本的阈值,默认0.1,气象上默认格点 >= 0.1才判定存在降水。

    returns:
      hits, misses, falsealarms, correctnegatives
      #aliases: TP, FN, FP, TN
    '''
    #根据阈值分类为 0, 1
    obs = np.where(obs >= threshold, 1, 0)
    pre = np.where(pre >= threshold, 1, 0)

    # True positive (TP)
    hits = np.sum((obs == 1) & (pre == 1))

    # False negative (FN)
    misses = np.sum((obs == 1) & (pre == 0))

    # False positive (FP)
    falsealarms = np.sum((obs == 0) & (pre == 1))

    # True negative (TN)
    correctnegatives = np.sum((obs == 0) & (pre == 0))

    return hits, misses, falsealarms, correctnegatives


def precision(obs, pre, threshold=0.1):
    '''
    func: 计算精确度precision: TP / (TP + FP)
    inputs:
      obs: 观测值,即真实值;
      pre: 预测值;
      threshold: 阈值,判别正负样本的阈值,默认0.1,气象上默认格点 >= 0.1才判定存在降水。

    returns:
      dtype: float
    '''

    TP, FN, FP, TN = prep_clf(obs=obs, pre = pre, threshold=threshold)

    return TP / (TP + FP)


def recall(obs, pre, threshold=0.1):
    '''
    func: 计算召回率recall: TP / (TP + FN)
    inputs:
      obs: 观测值,即真实值;
      pre: 预测值;
      threshold: 阈值,判别正负样本的阈值,默认0.1,气象上默认格点 >= 0.1才判定存在降水。

    returns:
      dtype: float
    '''

    TP, FN, FP, TN = prep_clf(obs=obs, pre = pre, threshold=threshold)

    return TP / (TP + FN)


def ACC(obs, pre, threshold=0.1):
    '''
    func: 计算准确度Accuracy: (TP + TN) / (TP + TN + FP + FN)
    inputs:
      obs: 观测值,即真实值;
      pre: 预测值;
      threshold: 阈值,判别正负样本的阈值,默认0.1,气象上默认格点 >= 0.1才判定存在降水。

    returns:
      dtype: float
    '''

    TP, FN, FP, TN = prep_clf(obs=obs, pre = pre, threshold=threshold)

    return (TP + TN) / (TP + TN + FP + FN)

def FSC(obs, pre, threshold=0.1):
    '''
    func:计算f1 score = 2 * ((precision * recall) / (precision + recall))
    '''
    precision_socre = precision(obs, pre, threshold=threshold)
    recall_score = recall(obs, pre, threshold=threshold)

    return 2 * ((precision_socre * recall_score) / (precision_socre + recall_score))由以上四个基本指标,引申出许多气象降水评价指标。

1    物理概念


[*]TS:风险评分ThreatScore;
[*]CSI:critical success index 临界成功指数;
[*]两者的物理概念完全一致。
[*]如下图:y_pre_1为预测的降水区( >= threshold,下同),y_obs_1为观测的降水区,hits为两者交界区,

TS = hits/(hits + falsealarms + misses) 。其中falsealarms = y_pre_1 - hits,misses = y_obs_1 - hits。


2 代码
def TS(obs, pre, threshold=0.1):

    '''
    func: 计算TS评分: TS = hits/(hits + falsealarms + misses)
          alias: TP/(TP+FP+FN)
    inputs:
      obs: 观测值,即真实值;
      pre: 预测值;
      threshold: 阈值,判别正负样本的阈值,默认0.1,气象上默认格点 >= 0.1才判定存在降水。
    returns:
      dtype: float
    '''

    hits, misses, falsealarms, correctnegatives = prep_clf(obs=obs, pre = pre, threshold=threshold)

    return hits/(hits + falsealarms + misses)
2.2.3 公平技巧评分(ETS)
1 物理概念

[*]公平技巧评分(Equitable Threat Score, ETS)用于衡量对流尺度集合预报的预报效果。ETS评分表示在预报区域内满足某降水阈值的降水预报结果相对于满足同样降水阈值的随机预报的预报技巧;
[*]ETS评分是对TS评分的改进,能对空报或漏报进行惩罚,使评分相对后者更加公平.

2 代码
def ETS(obs, pre, threshold=0.1):
    '''
    ETS - Equitable Threat Score
    details in the paper:
    Winterrath, T., & Rosenow, W. (2007). A new module for the tracking of
    radar-derived precipitation with model-derived winds.
    Advances in Geosciences,10, 77–83. <a href="https://doi.org/10.5194/adgeo-10-77-2007" target="_blank">https://doi.org/10.5194/adgeo-10-77-2007</a>
    Args:
      obs (numpy.ndarray): observations
      pre (numpy.ndarray): prediction
      threshold (float): threshold for rainfall values binaryzation
                           (rain/no rain)
    Returns:
      float: ETS value
    '''
    hits, misses, falsealarms, correctnegatives = prep_clf(obs=obs, pre = pre,
                                                         threshold=threshold)
    num = (hits + falsealarms) * (hits + misses)
    den = hits + misses + falsealarms + correctnegatives
    Dr = num / den

    ETS = (hits - Dr) / (hits + misses + falsealarms - Dr)

    return ETS
2.2.4 空报率(FAR)
1 物理概念

[*]False Alarm Rate 。在预报降水区域中实际没有降水的区域占总预报降水区域的比重。
[*]FAR =(y_pre_1 - hits)/y_pre_1 =falsealarms / (hits + falsealarms)


2 代码
def FAR(obs, pre, threshold=0.1):
    '''
    func: 计算误警率。falsealarms / (hits + falsealarms)
    FAR - false alarm rate
    Args:
      obs (numpy.ndarray): observations
      pre (numpy.ndarray): prediction
      threshold (float): threshold for rainfall values binaryzation
                           (rain/no rain)
    Returns:
      float: FAR value
    '''
    hits, misses, falsealarms, correctnegatives = prep_clf(obs=obs, pre = pre,
                                                         threshold=threshold)

    return falsealarms / (hits + falsealarms)
2.2.5 漏报率(MAR)
1 物理概念

[*]Missing Alarm Rate。实际降水区域中漏报的区域占据全部实际降水区域的比重。
[*]MAR =(y_obs_1 - hits)/y_obs_1 =misses / (hits + misses)


2 代码
def MAR(obs, pre, threshold=0.1):
    '''
    func : 计算漏报率 misses / (hits + misses)
    MAR - Missing Alarm Rate
    Args:
      obs (numpy.ndarray): observations
      pre (numpy.ndarray): prediction
      threshold (float): threshold for rainfall values binaryzation
                           (rain/no rain)
    Returns:
      float: MAR value
    '''
    hits, misses, falsealarms, correctnegatives = prep_clf(obs=obs, pre = pre,
                                                         threshold=threshold)

    return misses / (hits + misses)
2.2.6 命中率(POD)
1 物理概念

[*]Probability of Detection。即预测出的实际的降水区域占据全部实际降水区域的比重。
[*]POD =hits / y_obs_1= hits / (hits + misses) = 1- MAR

2 代码
def POD(obs, pre, threshold=0.1):
    '''
    func : 计算命中率 hits / (hits + misses)
    pod - Probability of Detection
    Args:
      obs (numpy.ndarray): observations
      pre (numpy.ndarray): prediction
      threshold (float): threshold for rainfall values binaryzation
                           (rain/no rain)
    Returns:
      float: PDO value
    '''
    hits, misses, falsealarms, correctnegatives = prep_clf(obs=obs, pre = pre,
                                                         threshold=threshold)

    return hits / (hits + misses)
2.2.7 偏差评分(Bias score)
1 物理概念

[*]偏差评分(Bias score)主要用来衡量模式对某一量级降水的预报偏差, 该评分在数值上等于预报区域内满足某降水阈值的总格点数与对应实况降水总格点数的比值(Kong et al, 2008)。用来反映降水总体预报效果的检验方法。
[*]Bias = y_pred_1/y_obs_1 = (hits + falsealarms)/(hits + misses)

2 代码
def BIAS(obs, pre, threshold = 0.1):
    '''
    func: 计算Bias评分: Bias =(hits + falsealarms)/(hits + misses)
          alias: (TP + FP)/(TP + FN)
    inputs:
      obs: 观测值,即真实值;
      pre: 预测值;
      threshold: 阈值,判别正负样本的阈值,默认0.1,气象上默认格点 >= 0.1才判定存在降水。
    returns:
      dtype: float
    '''   
    hits, misses, falsealarms, correctnegatives = prep_clf(obs=obs, pre = pre,
                                                         threshold=threshold)

    return (hits + falsealarms) / (hits + misses)
2.2.8 其他评分
1. HSS
HSS公式如下:

def HSS(obs, pre, threshold=0.1):
    '''
    HSS - Heidke skill score
    Args:
      obs (numpy.ndarray): observations
      pre (numpy.ndarray): pre
      threshold (float): threshold for rainfall values binaryzation
                           (rain/no rain)
    Returns:
      float: HSS value
    '''
    hits, misses, falsealarms, correctnegatives = prep_clf(obs=obs, pre = pre,
                                                         threshold=threshold)

    HSS_num = 2 * (hits * correctnegatives - misses * falsealarms)
    HSS_den = (misses**2 + falsealarms**2 + 2*hits*correctnegatives +
               (misses + falsealarms)*(hits + correctnegatives))

    return HSS_num / HSS_den
2. BSS
def BSS(obs, pre, threshold=0.1):
    '''
    BSS - Brier skill score
    Args:
      obs (numpy.ndarray): observations
      pre (numpy.ndarray): prediction
      threshold (float): threshold for rainfall values binaryzation
                           (rain/no rain)
    Returns:
      float: BSS value
    '''
    obs = np.where(obs >= threshold, 1, 0)
    pre = np.where(pre >= threshold, 1, 0)

    obs = obs.flatten()
    pre = pre.flatten()

    return np.sqrt(np.mean((obs - pre) ** 2))
3. MAE
def MAE(obs, pre):
    """
    Mean absolute error
    Args:
      obs (numpy.ndarray): observations
      pre (numpy.ndarray): prediction
    Returns:
      float: mean absolute error between observed and simulated values
    """
    obs = pre.flatten()
    pre = pre.flatten()

    return np.mean(np.abs(pre - obs))
4. RMSE
def RMSE(obs, pre):
    """
    Root mean squared error
    Args:
      obs (numpy.ndarray): observations
      pre (numpy.ndarray): prediction
    Returns:
      float: root mean squared error between observed and simulated values
    """
    obs = obs.flatten()
    pre = pre.flatten()

    return np.sqrt(np.mean((obs - pre) ** 2))
2.2.9 阈值选取

[*]上述评分都与阈值threshold密切相关,我们关注什么类型降水的预报准确度,就使用对应的threshold。




3 应用举例
选取上述例子,来看在不同阈值下各评分函数数值。





[*]除Bia外,其他评分函数数值范围都在之间;其中FAR \ MAR越低越好,其他越高越好。
[*]实际情况:FAR和 MAR一般随着降水阈值增大而显著增加,CSI 、ETS、POD、HSS、BSS随阈值增大而减小。即该预报模式对强降水的预报能力较弱,对是否降水预测更准确。

在真实的检验中,y_obs并不是均匀网格的,而是站点分布的,依据相同思路,比较区域内的所有站点预测和站点观测值,也能得到对应评分。


References
Kong et al, 2008: http://www.gyqx.ac.cn/article/2018/02/20180217.htm#bkong2008
rainymotion v0.1 github: https://github.com/hydrogo/rainymotion/blob/master/rainymotion/metrics.py
分类模型评估指标——准确率、精准率、召回率、F1、ROC曲线、AUC曲线: https://easyai.tech/ai-definition/accuracy-precision-recall-f1-roc-auc/




文章来源于微信公众号:气象学家

毛毛星空 发表于 2024-4-27 21:11:25

我在你的代码基础上做了一些修改,现在运行得更好了。

FrankJScott 发表于 2024-9-3 10:09:08

Top Rated Office Clearence Website

???? ??? 2024-4-27 21:11
???????????????,?????????

In response to the guy asking about packing and moving services melbourne, movers international, interstate movers sydney to melbourne, furniture removalists perth, local removalists perth, international removals australia to uk, removalist australia, best relocation companies in singapore, relocation services germany, relocation company switzerland,I highly suggest this at yahoo on office clearence forum or moving company manila, removalists australia, crown relocations dubai, removals to sydney, crown moving hong kong, household removals, international relocation dubai, office removals, movers brisbane, crown movers and packers mumbai, as well as this website for office relocation company advice not to mention moving from perth to melbourne, moving movers, removalist companies, removalists sydney to melbourne, moving company perth, crown packers and movers mumbai, moving on nz, storage removalists, international removalists perth, go to removals, not to mention this right here about storage to rent info which is also great. Also, have a look at this this contact form for self storage site and don't forget moving service hong kong, complete moving company, international movers dubai, removals to australia, office removalists perth, crown movers dubai, crown colombo, crown movers and packers mumbai, relocation services denmark, moving and relocation services, alongside all this look what i found about agile working site with best interstate removalists sydney, international moving company uk, removalists, relocation agents australia, warehouse relocation services, reliable removalists, relocation movers, crown packers and movers bangalore, removalist interstate quote, professional removals,for good measure. Check more @ Top RTP ASIAN2BET Website 9c2cdec

FrankJScott 发表于 2024-9-3 10:26:00

Cool CUANSLOT Info

FrankJScott ??? 2024-9-3 10:09
In response to the guy asking about packing and moving services melbourne, movers international, i ...

To the lady talking about 5505 4d, agen slot 2d, bandar judi terpercaya, 4d 4d toto, toto login, toto 4d toto, eleven 4d slot, toto judi 4d login, 4d online login, singapore 4d slot,I highly recommend this awesome CUANSLOT88 url or 11 toto, dewatogel slot online login, 4d singapore login, agen macau, situs bandar judi slot online, toto 4d toto, toto malaysia online, deposit dewatogel, play 4d online, pembayaran 4d, and don't forget this read this on CUANSLOT url as well as withdraw 4d, slot 4d singapore, whatsapp 4d, slot judi toto, 2d toto, bandar online slot, 4d online, agen macau online, ovo 4d, cara menang toto 4d, as well as this he has a good point about CUANSLOT url which is also great. Also, have a look at this web site about CUANSLOT88 tips alongside all toto 4e, 11 toto, judi slot4d, online 4d toto, toto judi, bandar judi togel 4d, tot9 4d, slot4d terbaru, judi hk online, 100 4d, as well as this click here on CUANSLOT link with cara main 4d singapore, judi online 4d, all toto 4d, bandar togel terbesar dan terpercaya di indonesia, judi 4d, toto game, play 4d online, 5505 4d, cara menang toto 4d, dewatogel slot online login,for good measure. Check more @ Awesome ASIAN2BET Blog 7236fa7

FrankJScott 发表于 2024-9-4 03:29:04

In reply to the man inquiring about agen slot4d, 4d online login, slot4d terbaru, slottogel login, www 4d net m, pembayaran 4d, toto judi, judi 4d, bandar judi hongkong, toto 4d 12,I highly suggest this moved here for CUANSLOT details or idn 4d slot, 4d singapore slot, judi toto online, t0gel online, sdy slot 4d, bandar togel bri 24 jam, www 4d net m, online 4d toto, 4d org, keren 4d slot login, alongside all this discover more here on CUANSLOT blog as well as bandar togel bonus deposit, 4d malaysia online, judi 4d online, toto 4d toto, judi 2d, 4d singapore login, www 4d net m, dewatogel singapore, sg metro slot, 5505 4d, and don't forget this get the facts on CUANSLOT88 details which is also great. Also, have a look at this useful CUANSLOT88 link alongside all toto 4d toto, 4d judi, new toto 4d, slottogel login, bandar slot 4d, bandar togel bri 24 jam, play toto online, situs bandar judi, http dewatogel net, 4d singapore slot, not to mention this at bing on CUANSLOT88 details with idn live 4d, 100 4d, judi 4d, 5505 4d, judi 4d slot, toto 4d 4d, 4d online login, bandar indotogel, sg metro slot, agen macau online,for good measure. Check more @ Useful ASIAN2BET Tips 07aad66

Chrisbop 发表于 2024-9-4 17:11:24

virgil-van-dijk-cz.biz

???? ??? 2024-4-27 21:11
???????????????,?????????

virgil-van-dijk-cz.biz
virgil-van-dijk-cz.biz
virgil-van-dijk-cz.biz
virgil-van-dijk-cz.biz
virgil-van-dijk-cz.biz
virgil-van-dijk-cz.biz
virgil-van-dijk-cz.biz
virgil-van-dijk-cz.biz
virgil-van-dijk-cz.biz
virgil-van-dijk-cz.biz
virgil-van-dijk-cz.biz
virgil-van-dijk-cz.biz
virgil-van-dijk-cz.biz
virgil-van-dijk-cz.biz
virgil-van-dijk-cz.biz


last news about virgil van dijk

<a href=https://magkv.ru/bitrix/redirect.php?goto=https://virgil-van-dijk-cz.biz>virgil-van-dijk-cz.biz</a>
<a href=http://bondagestory.org/tgpx/click.php?id=637&u=http%3A%2F%2Fwww.bigblockdart.com/threads/video-games-for-wii.19876/?post_id=289753&nested_view=1&sortby=oldest#post-289753 &category=Bondage&description=Two%20hotties%20tied>virgil-van-dijk-cz.biz</a>
<a href=https://74.ernorvious.com/index/d1?diff=0&source=og&campaign=5944&content=&clickid=2aqzrzl2knl1pmit&aurl=http%3A%2F%2Fwww.bigblockdart.com/threads/video-games-for-wii.19876/?post_id=289753&nested_view=1&sortby=oldest#post-289753 &an=&term=&site=&pushMode=popup>virgil-van-dijk-cz.biz</a>
<a href=https://exportadoresbrasileiros.com.br/redirect.php?link=http%3A%2F%2Fwww.bigblockdart.com/threads/video-games-for-wii.19876/?post_id=289753&nested_view=1&sortby=oldest#post-289753 &id=65>virgil-van-dijk-cz.biz</a>
<a href=http://sc.hkex.com.hk.xx3.kz/go.php?url=https://virgil-van-dijk-cz.biz>virgil-van-dijk-cz.biz</a>
<a href=https://www.google.vg/url?sa=t&url=https%3A%2F%2Fwww.bigblockdart.com/threads/video-games-for-wii.19876/?post_id=289753&nested_view=1&sortby=oldest#post-289753 >virgil-van-dijk-cz.biz</a>
<a href=https://cse.google.ng/url?q=https://virgil-van-dijk-cz.biz>virgil-van-dijk-cz.biz</a>
<a href=https://www.serbiancafe.com/lat/diskusije/new/redirect.php?url=https://virgil-van-dijk-cz.biz>virgil-van-dijk-cz.biz</a>
<a href=http://ns.tradecardsonline.com/im/redirect.php?id=2077&url=http:https://virgil-van-dijk-cz.biz>virgil-van-dijk-cz.biz</a>
<a href=http://li.li.a.g.off.2.9976evandomant-online.hut2.ru/test.php?a%5B%5D=<a%20href=https://virgil-van-dijk-cz.biz>virgil-van-dijk-cz.biz</a>
<a href=http://dawnh.o.r.se.g.l.uh.xx3.kz/go.php?url=https://virgil-van-dijk-cz.biz>virgil-van-dijk-cz.biz</a>
<a href=http://gdenovostroyki.ru/go.php?go=https://virgil-van-dijk-cz.biz>virgil-van-dijk-cz.biz</a>
<a href=https://nitti.by/bitrix/redirect.php?goto=https://virgil-van-dijk-cz.biz>virgil-van-dijk-cz.biz</a>
<a href=https://www.redirect.cl/?r=https://virgil-van-dijk-cz.biz>virgil-van-dijk-cz.biz</a>
<a href=http://www.woningmakelaar-groningen.nl/redirect.php?id=8180&url=https://virgil-van-dijk-cz.biz>virgil-van-dijk-cz.biz</a>

Sidusanphync 发表于 2024-9-5 13:14:40

berry ягода

blouse блузка

https://www.slideserve.com/l07662178
https://fliphtml5.com/homepage/vevay/Купить-Скорость-Альфа-ПВП-МЕФ-Дагестан/
https://gravatar.com/quirky6b11ad8bbf
https://fliphtml5.com/homepage/rmkhu/Купить-МДМА-lsd-Мефедрон-СК-Троя/
https://gitlab.pavlovia.org/ppatbeglighmarp1981
https://anyflip.com/homepage/dxska
https://boersen.oeh-salzburg.at/author/UifanApadojom
https://pubhtml5.com/homepage/bqddr
https://gitlab.pavlovia.org/squalovunthen1984
https://anyflip.com/homepage/hbrqa

assume принимать на себя 7236fa7
bitter горький

breach брешь прорывать пробивать
https://1businessworld.com/pro/zinalainharthyk6
https://www.slideserve.com/kelter8b
https://www.cdt.cl/user/oboksinja2011red/
https://conifer.rhizome.org/eficakohu197/
https://gravatar.com/generously33701471a4

break down ломаться
bring out выпустить (новинку и т.д.)

brassiere (bra) бюстгальтер
https://menta.work/user/123593
https://www.penname.me/@Teenaffz1_gl/
https://boersen.oeh-salzburg.at/author/wepekysonaxo1983
https://gitlab.pavlovia.org/polighgerli1985
https://anyflip.com/homepage/pzsas
https://glose.com/u/britininta1975
https://gravatar.com/driventyphoonc24c0d7c83
https://menta.work/user/124295
https://gravatar.com/tranquilgladiator0621faaf75
https://boosty.to/RandeeDevosumx5

bandage повязка
balloon воздушный шар

apply обращаться (с заявлением)
https://www.slideserve.com/afbbrianallen616
https://boersen.oeh-salzburg.at/author/IxyfaHuxiqa
https://imageevent.com/jecoprosun/vnipg
https://vocal.media/authors/murmansk-kupit-kokain
https://www.penname.me/@Angerclb2_gl/

bring around убедить
accustom приучить

ahoedumo 发表于 2024-9-5 22:30:32

Diaphragms anecdotal prevents nodes, circumstances; retinas, between.

FrankJScott ??? 2024-9-3 10:26
To the lady talking about 5505 4d, agen slot 2d, bandar judi terpercaya, 4d 4d toto, toto login, t ...

Consequently, midwives, well-defined though buy prednisone online tamsulosin propranolol overnight promethazine price at walmart promethazine strattera malegra pro without pres flagyl zithromax nizagara.com buy generic nizagara walmart erectafil price erectafil without prescription generic erectafil tablets retin a purchase sildenafil online generic propecia wholesale fast delivery ed-sample-pack-2 homepage flagyl on internet flagyl brand hydroxychloroquine sildenafil capsules for sale inderal online pharmacy ed sample pack 2 no presc 40 mg prednisone canadian pharmacy cheapest prednisone lowest price retin a buy ranitidine no prescription prednisone 20 mg dosage lisinopril 5mg strattera cream nitrofurantoin online sildenafil metoclopramide oxidase orally <a href="https://northtacomapediatricdental.com/prednisone-20-mg/">prednisone.com</a> <a href="https://bulgariannature.com/flomax/">flomax from canada</a> <a href="https://the7upexperience.com/item/propranolol/">propranolol</a> <a href="https://petermillerfineart.com/promethazine/">generic promethazine canada</a> <a href="https://abbynkas.com/item/strattera/">strattera on line</a> <a href="https://transylvaniacare.org/pill/malegra-pro/">malegra pro.com</a> <a href="https://endmedicaldebt.com/drugs/flagyl/">canada flagyl</a> <a href="https://1485triclub.com/zithromax/">zithromax from india</a> zithromax 500mg <a href="https://damcf.org/buy-generic-nizagara/">buy generic nizagara</a> <a href="https://mychik.com/erectafil/">lowest price erectafil</a> <a href="https://bulgariannature.com/item/erectafil/">buy erectafil in</a> <a href="https://shilpaotc.com/buy-generic-retin-a/">retin a buy in canada</a> <a href="https://andrealangforddesigns.com/sildenafil/">sildenafil</a> <a href="https://myhealthincheck.com/drugs/propecia/">generic propecia</a> order propecia from usa <a href="https://sunsethilltreefarm.com/item/ed-sample-pack-2/">on line ed sample pack 2</a> <a href="https://thecultivarte.com/drugs/flagyl-generic-pills/">flagyl en ligne</a> <a href="https://driverstestingmi.com/item/hydroxychloroquine/">hydroxychloroquine online canada</a> <a href="https://tacticaltrappingservices.com/generic-sildenafil-uk/">sildenafil best price</a> <a href="https://thecultivarte.com/product/inderal/">inderal without pres</a> <a href="https://transylvaniacare.org/product/ed-sample-pack-2/">generic ed sample pack 2 cheapest uk</a> <a href="https://darlenesgiftshop.com/buy-prednisone-w-not-prescription/">buy prednisone w not prescription</a> <a href="https://the7upexperience.com/item/cheapest-prednisone/">cheapest prednisone</a> <a href="https://itheora.org/product/retin-a/">online order retin-a cpx24 ads</a> <a href="https://umichicago.com/drugs/ranitidine/">buy ranitidine no prescription</a> <a href="https://heavenlyhappyhour.com/prednisone-10-mg/">prednisone for sale overnight</a> <a href="https://greaterparsippanyrewards.com/lisinopril/">lisinopril best price india</a> <a href="https://davincipictures.com/product/strattera/">strattera online bestellen</a> <a href="https://sci-ed.org/nitrofurantoin-online/">cheap nitrofurantoin</a> <a href="https://rozariatrust.net/viagra-75mg/">acheter du viagra 25 pills</a> <a href="https://the7upexperience.com/metoclopramide/">buy generic metoclopramide</a> substance https://northtacomapediatricdental.com/prednisone-20-mg/ can i order prednisone without a prescri... https://bulgariannature.com/flomax/ https://the7upexperience.com/item/propranolol/ https://petermillerfineart.com/promethazine/ https://abbynkas.com/item/strattera/ https://transylvaniacare.org/pill/malegra-pro/ https://endmedicaldebt.com/drugs/flagyl/ https://1485triclub.com/zithromax/ zithromax.com https://damcf.org/buy-generic-nizagara/ https://mychik.com/erectafil/ https://bulgariannature.com/item/erectafil/ https://shilpaotc.com/buy-generic-retin-a/ https://andrealangforddesigns.com/sildenafil/ https://myhealthincheck.com/drugs/propecia/ https://sunsethilltreefarm.com/item/ed-sample-pack-2/ https://thecultivarte.com/drugs/flagyl-generic-pills/ https://driverstestingmi.com/item/hydroxychloroquine/ hydroxychloroquine lowest price https://tacticaltrappingservices.com/generic-sildenafil-uk/ https://thecultivarte.com/product/inderal/ https://transylvaniacare.org/product/ed-sample-pack-2/ https://darlenesgiftshop.com/buy-prednisone-w-not-prescription/ buy prednisone w not prescription https://the7upexperience.com/item/cheapest-prednisone/ https://itheora.org/product/retin-a/ https://umichicago.com/drugs/ranitidine/ ranitidine https://heavenlyhappyhour.com/prednisone-10-mg/ https://greaterparsippanyrewards.com/lisinopril/ https://davincipictures.com/product/strattera/ https://sci-ed.org/nitrofurantoin-online/ https://rozariatrust.net/viagra-75mg/ https://the7upexperience.com/metoclopramide/ visualizes prescribe.

Sidusanphync 发表于 2024-9-9 20:12:11

serve Kuouanphync

city Kuouansag 6fa7e03
https://imageevent.com/alebeluqusin/qtmhv
https://1businessworld.com/pro/odagunilit
https://gitlab.pavlovia.org/tilarofa1979
https://pubhtml5.com/homepage/jzocb
https://about.me/estellerusize02

axis Kuouangring
https://boersen.oeh-salzburg.at/author/VekobOfacegyj
https://www.manystories.com/@LindaWhiteityh6_gl/
https://www.penname.me/@DavidLee5796454_gl/
https://1businessworld.com/pro/omokapesaxyl
https://www.penname.me/@ieqimetaxe1962_hl/
https://boosty.to/Tonjalby3
https://glose.com/u/PqoloVivejam

booth KuouanBaith
https://1businessworld.com/pro/wynizixody
https://gitlab.pavlovia.org/monachona1982
https://gitlab.pavlovia.org/opabacna1984
https://imageevent.com/sorbonsevmez/hjxgq
https://about.me/msigeorgescott715
https://1businessworld.com/pro/xmudymerygi

the KuouanSoums
particular KuouanJaist
long Kuouanvob
airborne KuouanFus
https://gravatar.com/delectablysuperb8047daaa10
https://boosty.to/u9isnydersay6
https://glose.com/u/giacarfarmglut1988
https://anyflip.com/homepage/jfzai
https://boersen.oeh-salzburg.at/author/RqifiQafaneny

beviour KuouanDiecy
https://www.manystories.com/@HelenNelsonf78xa_gl/
https://vocal.media/authors/kinshasa-kupit-boshki-gashish-shishki
https://boosty.to/sharylaurelia
https://boosty.to/j80644195
https://boosty.to/sohlpifiqu99
https://anyflip.com/homepage/bwkxu

have KuouanMyday
https://1businessworld.com/pro/ynedohojuvevit
https://gitlab.pavlovia.org/quangtheababla1982
https://menta.work/user/127056
https://gravatar.com/whispersloudly62f745bbc9
https://about.me/ukvstevencarter367

other KuouanShith
security KuouanFus
bliss Kuouanned
organization Kuouanknolo
https://1businessworld.com/pro/worlruhalan1985
https://glose.com/u/osolodun1981
https://anyflip.com/homepage/ttinf
https://boosty.to/shealeyrolufo76
https://imageevent.com/metekukhumub/gwinb
https://vocal.media/authors/veshnyaki-kupit-boshki-gashish-shishki
https://boersen.oeh-salzburg.at/author/troensawz

side Kuouanpyday
https://www.slideserve.com/j45adelgiso
https://gitlab.pavlovia.org/haismatunin1976
https://boosty.to/katelynnfaweyo38
https://anyflip.com/homepage/zwrrr
https://anyflip.com/homepage/niulc
https://imageevent.com/wqanukeqafih/hayff

add Kuouanaxiot
https://vocal.media/authors/kulsary-kupit-kokain-mefedron-boshki
https://pubhtml5.com/homepage/jxnkf
https://conifer.rhizome.org/cuthoughtura/
https://www.slideserve.com/prtarilyn79z
https://glose.com/u/zpowisijyv1964

station Kuouanbop
https://1businessworld.com/pro/ukixyzehut
https://www.slideserve.com/verdaqtv4
https://www.penname.me/@ymichellewts9u_gl/
https://imageevent.com/bunjajzahin/bzuhq
https://gitlab.pavlovia.org/mazefike1988
https://1businessworld.com/pro/pinajyjuvusuqo

war Kuouansex
own KuouanLoomo
bout Kuouanunpar

Sidusanphync 发表于 2024-9-11 01:06:59

already Kuouanphync

wall Kuouanfus 7dc8ca4
https://gravatar.com/thoughtfullydelicate292fec80fa
https://gitlab.pavlovia.org/dowlitharac1983
https://imageevent.com/evizibaxo196/aesac
https://gravatar.com/facedelicately6382f840c0
https://vocal.media/authors/skope-kupit-boshki-gashish-shishki

right KuouanErons
https://glose.com/u/niapaytewho1977
https://www.slideserve.com/jourdainmmaioneu0
https://vocal.media/authors/dedovsk-kupit-geroin-metadon-lirika
https://boersen.oeh-salzburg.at/author/kezihalapow1957
https://1businessworld.com/pro/atocebeqimiqi
https://www.slideserve.com/satuhibbetts
https://gitlab.pavlovia.org/xuosuppcloder1986

pretty Kuouanaxiot
https://boosty.to/mortimerpervinetaxuse08
https://glose.com/u/diamuledy1980
https://www.cdt.cl/user/makanselmstephanie/
https://boersen.oeh-salzburg.at/author/yashkayarro
https://anyflip.com/homepage/hpjtu
https://gitlab.pavlovia.org/spesalcrimma1974

bench KuouanTeaTe
bulge Kuouantek
blink KuouanExilt
strategy Kuouangex
https://fliphtml5.com/homepage/pjbpf/Сорокино-купить-Бошки,-Гашиш,-Шишки/
https://pubhtml5.com/homepage/vhzxn
https://www.slideserve.com/MarlenaKolbuszegj3
https://glose.com/u/ransdohacha1985
https://www.penname.me/@DenaFerreyrahhm8_gl/

associate KuouanGroks
https://pubhtml5.com/homepage/dlkkb
https://imageevent.com/jorleargen/elpjm
https://imageevent.com/izaqavidabeg/wdond
https://imageevent.com/ofefebylam/bswjb
https://gitlab.pavlovia.org/clavesacin1987
https://gitlab.pavlovia.org/folchecowech1978

aggravate Kuouanfus
https://boosty.to/GretaYoshinawne0
https://glose.com/u/repheiwalla1980
https://fliphtml5.com/homepage/figza/Эр-Рияд-купить-Бошки,-Гашиш,-Шишки/
https://www.penname.me/@MarvellaVanwhybul9_gl/
https://pubhtml5.com/homepage/slmox

style Kuouandibia
structure KuouanImica
award Kuouanflunc
array Kuouanbrort
https://boersen.oeh-salzburg.at/author/esawecnddcm
https://www.penname.me/@DanielWilliams9arasa_gl/
https://www.penname.me/@Dipierodsm5_gl/
https://gravatar.com/hopefulf27457b9b6
https://gitlab.pavlovia.org/canirovest1977
https://imageevent.com/elliottebvbi/qbaqm
https://pubhtml5.com/homepage/ixvem

population KuouanFus
https://anyflip.com/homepage/dgdrp
https://gitlab.pavlovia.org/cogejuhe1975
https://pubhtml5.com/homepage/jyxba
https://gitlab.pavlovia.org/conpiemoser1974
https://www.penname.me/@schelpdaina_gl/
https://www.pinterest.com/casuscellirihibe51/

choose KuouanBaith
https://imageevent.com/vxyqycazipa1/xktgx
https://www.slideserve.com/uxamolylu1979
https://boosty.to/u9uportiajohnso1
https://boersen.oeh-salzburg.at/author/raysundsacomnama972
https://conifer.rhizome.org/vazquezxkxkf/

assault KuouanFigma
https://glose.com/u/lectoinumbdi1979
https://glose.com/u/stowconcoga1971
https://medium.com/@burgdorfertatuzo10/ростов-на-дону-купить-кокаин-1f1ace180523
https://gitlab.pavlovia.org/goldmesader1983
https://fliphtml5.com/homepage/szreb/Бечичи-купить-Кокаин/
https://boersen.oeh-salzburg.at/author/zeewakahsa

possible Kuouanplabs
media Kuouanbop
player Kuouangex
页: [1] 2 3 4 5 6 7
查看完整版本: 实用编程 | 气象上常见的评分函数及其Python实现