jjzjj

全球气候模式降尺度方法总结及其代码实现

WW、forever 2024-01-07 原文

全球气候模式降尺度方法(Downscaling)

降尺度:把大尺度、低分辨率的全球气候模式输出的信息转化为小尺度、高分辨率的区域地面气候变化信息的一种方法。

全球气候模式(Global Climate Model, GCM)能很好地预估未来全球气候变化,但目前它输出的空间分辨率(通常为300千米左右)较低,缺少详细的区域气候信息,难以对区域气候做出合理的预测。降尺度(downscale) 可以弥补全球气候模式预测区域气候变化的局限,它可以把全球气候模式提供的大尺度气候信息转化为区域尺度的气候信息(如气温、降水等),从而实现对区域气候预测。
常用的降尺度方法主要包括三种类别:动力降尺度、统计降尺度以及动力和统计相结合的降尺度方法。

1 动力降尺度(Dynamic downscaling technique)

动力降尺度,即区域气候模型(Regional Climate Models, RCMs),是建立在系统的大气热力动力学方程基础之上,基于GCM提供的初始和侧边界条件,通过动力学方程之间的关系,推导得到的具有更高分辨率的气候变化情景。
然而,现阶段对气候系统内在的复杂性及其不确定性仍然难以有效刻画和描述,尤其对气候的动力过程缺乏深入认识,动力降尺度模型的输出变量仍然具有较大偏差,例如通常容易低估降水极值和高估降水的发生频率。尽管RCM的空间分辨率已经有了很大提高,仍然不能满足中小流域的实际应用,尤其是站点尺度气候变化的影响评估。同时,RCM的运行是基于GCM提供的侧边界条件,它的输出变量会在一定程度上遗传GCM的系统偏差。另外,由于RCM具有较大的计算量,只能在部分流域产生有限的气候变化情景,难以在实际应用中探究气候变化水文效应评估中的不确定性。
动力降尺度方法具有较强的物理机制,且受观测资料的影响较小,可应用于不同的空间分辨率(一般为15~50km),从而反映影响区域气候的地面属性和未来气候的波动特征。
优点: 物理意义明确,能用于任何地方而不受观测资料的影响,也可用于不同的分辨率。
缺点: 计算量大,费机时;受全球气候模式提供的边界条件影响大;动力模式对气候模拟的系统误差比较大。

2 统计降尺度(Statistical downscaling technique)

统计降尺度方法通过建立历史阶段气候模式的网格输出变量与站点或区域观测变量之间的统计模型,并将该统计关系应用到未来的气候模拟输出中,从而得到站点或区域尺度的未来气候要素系列。
与动力降尺度模型相比,统计降尺度方法具有更小的计算量,同时其模拟性能可以满足要求,由于其使用较为简便在国内外得到广泛应用。
优点: 计算量小,易于操作;能够纠正全球气候模式的系统误差,不用考虑边界条件对预测结果的影响。
缺点: 需要足够的观测资料建立统计模式;不能用于大尺度气候要素与区域气候要素相关性差的地区。
Maraun等[5]将统计降尺度方法分为三类:完美预测法(perfect prognosis, PP)、模型输出统计(Model Output Statistics, MOSs)和基于天气发生器(weather generator-based methods, SWG) 。
使用统计降尺度方法开展气候变化影响评估时,首先需要对其气候生成情景和响应评估的表现进行评价,可以采用统计检验、相对误差、泰勒图、均方根误差等标准来衡量降尺度方法的可靠性。

2.1 理想预报法(Perfect Prognosis, PP)

理想预报方法是目前应用较为广泛的一种统计降尺度方法,其原理是建立历史时期多个大气环流因子网格输出(预报因子,如大气湿度、太阳辐射和气压等)和站点或区域气象观测要素(预报变量,如气温和降水)之间的统计模型,然后将该函数关系应用于未来时期的大气环流因子网格输出,从而获得站点或区域的未来气候变化情景。
统计模型 :大气环流因子网格输出(预报因子,如大气湿度、太阳辐射和气压等)-区域气象观测要素(预报变量,如气温和降水)
理想预报方法一般假设全球气候模式能够较好地模拟网格尺度的大气环流因子,同时假定大气环流因子与区域或站点尺度的气象要素之间具有较强的相关性,其最主要的假设在于历史时期预报因子与预报变量的统计关系在未来气候变化情景下仍然适用。优选的预报因子通常对理想预报方法能否取得较好的统计降尺度效果具有重要作用,如何选取成为PP 方法的关键。

2.2 模型输出统计法(Model Output Statistics, MOS)

通过建立历史时期降水网格输出局地或站点实测降水之间的关系,推演未来时期区域或站点降水序列的方法可以称为模型输出统计法(MOS) 方法。类似地,通过建立GCM的气温网格输出与站点或局地的实测气温之间的统计模型,MOS方法也可以用于气温或其他气象要素的统计降尺度。
统计模型 :RCM 模拟的变量(预报因子predictors)-局部尺度观测值(预报变量predictands)
与PP方法建立网格尺度实测预报因子与站点或局地尺度气象要素关系不同的是,MOS方法直接使用全球气候模式输出的气候变量或与之相对应的观测气候变量之间的关系,用以校正输出气候变量的系统偏差,即常用的偏差校正方法。该方法将历史期实测数据与气候模式输出在统计参数方面的差异定义为模型偏差,而且需要在模拟未来气候系列时应该去除掉该项系统偏差。

2.2.1 经验降尺度方法(empirical downscaling methods)

经验降尺度方法寻求使用来自有偏差的模型输出的信息,常用方法可分为以下两类:

  • 变化因子方法(change factor approaches)
    变化因子方法假设气候变化信号 (climate change signal, CCS) 是由气候模型合理预测的,即使这些模型是有偏差的。
  • 偏差校正方法(bias correction approaches)
    偏差校正方法假设模型偏差随时间保持不变。也就是说,偏差校正方法假设参考期的观察变量和模型变量分布之间的关系与未来时期的相同。

2.2.1.1 变化因子方法(change factor approaches)

方法1:恒定缩放法/增量变化法(Constant scaling, CS/ delta change method))

论文:J2009-Influence of rainfall scenario construction methods on runoff projections

方法2:每日缩放法(Daily Scaling, DS)

论文:J2009-Influence of rainfall scenario construction methods on runoff projections

2.2.1.2 偏差校正方法(bias correction approaches)

方法1: (Daily translation, DT)

论文:J2009-Influence of rainfall scenario construction methods on runoff projections

方法2.1:局部强度缩放法(Local intensity scaling, LOCI)-仅用于校正降水

论文:

方法2.2:局部强度缩放法(Local intensity scaling, LOCI)-用于校正降水和温度

论文:

方法3:(Daily bias correction, DBC)

论文:

方法4: (Quantile mapping, QM)

论文:J2010-Empirical-statistical downscaling and error correction of daily precipitation from regional climate models

2.2.2 基于分位数的日尺度偏差校正方法(Daily bias correction, DBC)

2.2.3 偏差校正空间分解BCSD算法

2.3 随机天气发生器(Stochastic Weather Generator, SWG)

随机天气发生器的技术要点是首先估计历史时期气象观测数据的统计参数,然后利用随机模拟模型生成与历史阶段气象要素相同统计参数的未来气候序列。历史期的观测数据可能存在较多的缺失值,但是随机天气发生器可以产生任意时长的完整气候系列。对于资料缺失较多的站点或无资料地区,可以通过空间参数插值的方法获得其历史时期的统计特征值,然后通过随机天气发生器产生缺测站点的气象序列。
随机天气发生器的重要功能是生成站点或区域尺度的未来平均气候变化情景,一般可分为参数非参数模型两种类别。

3 动力和统计相结合的降尺度方法

动力和统计降尺度相结合的方法,其工作流程为:首先基于全球气候模式生成侧边界条件,通过一套热力动力学方程生成区域尺度的气候变量;再使用统计降尺度技术产生站点或区域的气候变化情景,该方法在一定程度上兼顾了动力降尺度和统计降尺度的优点,但实质上只是两种方法的拼接,在气候变化评估的实际应用中存在局限。

参考

1.博士论文-D2019-全球水文气象极值事件对气候变化的响应研究-尹家波
2-DBC方法:J2013-Performance and uncertainty evaluation of empirical downscaling methods in quantifying the climate change impacts on hydrology over two North America river basins
3.QDM方法:J2016-J2016-Bias Correction of GCM Precipitation by Quantile Mapping: How Well Do Methods preserve changes in quantiles and extreme
4.TSQM方法:J2019-A new two-stage multivariate quantile mapping method for bias correcting climate model outputs
5.提出统计降尺度方法的三个分类:J2010-Precipitation downscaling under climate change: Recent developments to bridge the gap between dynamical models and the end user

  • 完美预测法(perfect prognosis (perfect prog))
  • 模型输出统计(Model Output Statistics, MOSs)
  • 基于天气发生器(weather generator-based methods)

6.将统计降尺度分为三类:J2012-Technical Note: Downscaling RCM precipitation to the station scale using statistical transformations – a comparison of methods

  • 分布函数转换
  • 参数转换
  • 非参数转换

有关全球气候模式降尺度方法总结及其代码实现的更多相关文章

  1. ruby - 如何使用 Nokogiri 的 xpath 和 at_xpath 方法 - 2

    我正在学习如何使用Nokogiri,根据这段代码我遇到了一些问题:require'rubygems'require'mechanize'post_agent=WWW::Mechanize.newpost_page=post_agent.get('http://www.vbulletin.org/forum/showthread.php?t=230708')puts"\nabsolutepathwithtbodygivesnil"putspost_page.parser.xpath('/html/body/div/div/div/div/div/table/tbody/tr/td/div

  2. ruby - 如何从 ruby​​ 中的字符串运行任意对象方法? - 2

    总的来说,我对ruby​​还比较陌生,我正在为我正在创建的对象编写一些rspec测试用例。许多测试用例都非常基础,我只是想确保正确填充和返回值。我想知道是否有办法使用循环结构来执行此操作。不必为我要测试的每个方法都设置一个assertEquals。例如:describeitem,"TestingtheItem"doit"willhaveanullvaluetostart"doitem=Item.new#HereIcoulddotheitem.name.shouldbe_nil#thenIcoulddoitem.category.shouldbe_nilendend但我想要一些方法来使用

  3. ruby - 为什么我可以在 Ruby 中使用 Object#send 访问私有(private)/ protected 方法? - 2

    类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc

  4. ruby - Facter::Util::Uptime:Module 的未定义方法 get_uptime (NoMethodError) - 2

    我正在尝试设置一个puppet节点,但ruby​​gems似乎不正常。如果我通过它自己的二进制文件(/usr/lib/ruby/gems/1.8/gems/facter-1.5.8/bin/facter)在cli上运行facter,它工作正常,但如果我通过由ruby​​gems(/usr/bin/facter)安装的二进制文件,它抛出:/usr/lib/ruby/1.8/facter/uptime.rb:11:undefinedmethod`get_uptime'forFacter::Util::Uptime:Module(NoMethodError)from/usr/lib/ruby

  5. ruby-on-rails - Rails - 子类化模型的设计模式是什么? - 2

    我有一个模型:classItem项目有一个属性“商店”基于存储的值,我希望Item对象对特定方法具有不同的行为。Rails中是否有针对此的通用设计模式?如果方法中没有大的if-else语句,这是如何干净利落地完成的? 最佳答案 通常通过Single-TableInheritance. 关于ruby-on-rails-Rails-子类化模型的设计模式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co

  6. Ruby 方法() 方法 - 2

    我想了解Ruby方法methods()是如何工作的。我尝试使用“ruby方法”在Google上搜索,但这不是我需要的。我也看过ruby​​-doc.org,但我没有找到这种方法。你能详细解释一下它是如何工作的或者给我一个链接吗?更新我用methods()方法做了实验,得到了这样的结果:'labrat'代码classFirstdeffirst_instance_mymethodenddefself.first_class_mymethodendendclassSecond使用类#returnsavailablemethodslistforclassandancestorsputsSeco

  7. ruby - 如何在 buildr 项目中使用 Ruby 代码? - 2

    如何在buildr项目中使用Ruby?我在很多不同的项目中使用过Ruby、JRuby、Java和Clojure。我目前正在使用我的标准Ruby开发一个模拟应用程序,我想尝试使用Clojure后端(我确实喜欢功能代码)以及JRubygui和测试套件。我还可以看到在未来的不同项目中使用Scala作为后端。我想我要为我的项目尝试一下buildr(http://buildr.apache.org/),但我注意到buildr似乎没有设置为在项目中使用JRuby代码本身!这看起来有点傻,因为该工具旨在统一通用的JVM语言并且是在ruby中构建的。除了将输出的jar包含在一个独特的、仅限ruby​​

  8. ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息 - 2

    我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i

  9. ruby-on-rails - Rails 源代码 : initialize hash in a weird way? - 2

    在rails源中:https://github.com/rails/rails/blob/master/activesupport/lib/active_support/lazy_load_hooks.rb可以看到以下内容@load_hooks=Hash.new{|h,k|h[k]=[]}在IRB中,它只是初始化一个空哈希。和做有什么区别@load_hooks=Hash.new 最佳答案 查看rubydocumentationforHashnew→new_hashclicktotogglesourcenew(obj)→new_has

  10. ruby-on-rails - Rails 3.2.1 中 ActionMailer 中的未定义方法 'default_content_type=' - 2

    我在我的项目中添加了一个系统来重置用户密码并通过电子邮件将密码发送给他,以防他忘记密码。昨天它运行良好(当我实现它时)。当我今天尝试启动服务器时,出现以下错误。=>BootingWEBrick=>Rails3.2.1applicationstartingindevelopmentonhttp://0.0.0.0:3000=>Callwith-dtodetach=>Ctrl-CtoshutdownserverExiting/Users/vinayshenoy/.rvm/gems/ruby-1.9.3-p0/gems/actionmailer-3.2.1/lib/action_mailer

随机推荐