当前位置: 首页 > news >正文

站长平台怎么做网站2018淘宝客网站开发

站长平台怎么做网站,2018淘宝客网站开发,开发软件需要学什么专业,如何做积分商城网站动力降尺度 国际耦合模式比较计划#xff08;CMIP#xff09;为研究不同情景下的气候变化提供了大量的模拟数据#xff0c;而在实际研究中#xff0c;全球气候模式输出的数据空间分辨率往往较低#xff08;100Km#xff0c;缺乏区域气候特征#xff0c;为了更好地研…动力降尺度 国际耦合模式比较计划CMIP为研究不同情景下的气候变化提供了大量的模拟数据而在实际研究中全球气候模式输出的数据空间分辨率往往较低100Km缺乏区域气候特征为了更好地研究不同情景下某一区域的气候变化特征我们往往需要更高分辨率的模拟数据。此时便需要对全球模式输出的数据进行降尺度研究将大尺度信息变量与小尺度信息变量建立联系获得更多的小尺度的变量。通常降尺度可分为1动力降尺度 2统计降尺度 3二者结合降尺度 动力降尺度通常是将全球模式输出的数据作为驱动场输入至区域气候模式中从而获取描述区域气候特征的更高分辨率数据。WRF作为最常用的中尺度天气预测模式将其与最新的CMIP6全球模式数据结合是动力降尺度最常用的方法。 下面以CMIP6数据中的MPI-ESM2-HR数据为例展示使用CMIP6数据驱动WRF的基本步骤。 对于CMIP6驱动WRF已有老师在github上上传了基于python的工具包习惯在LINUX下使用python的用户可以尝试cmip6-to-wrfnterm 基本思路都是类似的只不过本文主要是基于服务器现有的NCL、CDO与shell脚本实现。 CMIP6数据准备 本次使用的模式为MPI-ESM2-HR数据空间分辨率为100km,选择原因数据全面、分辨率好、应用较多可自己根据需求去官网下载数据。 本次所需下载并驱动的变量有 v_namewrf_nameunitsdimdescnotespsPSFCPa2dsurface pressurepslPMSLPa2dMean sea-level pressurezgGHTm3dgeopotential heighttaTTK3dair temperaturetasTTK2d2-m temeratureuaUUm s-13du-component wind;uasUUm s-12d10-m u-component windvaVVm s-13dv-component windvasVVm s-12d10-m v-component windhusSPECHUMDkg kg-13dspecific humidityhussSPECHUMDkg kg-12d10-m specific humiditytsSKINTEMPK2dSkin temperaturetslST000010K2d0-10cm soil temperaturetosSSTK2dSea temperatureoptionalmrsosSM000010m3 m-32d0-10cm soil moisturesnwSNOWkg m-22dsnow massoptionalsicSEAICE12dseaiceoptional 下载数据命名一般为以下格式 变量名称_时间分辨率_层级_模式名称_情景名称_年份时间在MPI-ECSM-HR变量的对应需要去自行查询变量表格、 预处理 首先由于下载的数据通常是10年一个致使在实际使用时我们首先要将需要对应时段的变量提取出来同样的为了后续使用shell脚本更好地进行批量处理这些变量应当以一种特定的格式命名。 使用cdo 的selvar seldate功能并结合shell脚本便能很好的完成 #!/bin/bash#suffix_6hrPlevPt_MPI-ESM1-2-HR_ssp126_r1i1p1f1_gn_201501010600-202001010000.nc startdate$1 enddate$2 #date1$1 hlist(00 06 12 18) varlist(ta ua va zg tas uas vas ts tsl snw hus huss psl) var2d(tas uas vas ts tsl snw huss psl) var3d(ta ua va zg hus)#echo ${date1}do date1date -d ${startdate} %Y-%m-%d echo ${date1}for var in ${var2d[]}doecho ${var}for hour in ${hlist[]}doecho ${hour}out_filename${var}_${date1}_${hour}.nc#input_filename${var}${suffix}input_filenamels ${var}_*ssp*echo ${out_filename}echo ${input_filename}cdo -seldate,${date1} -selhour,${hour} -selname,${var} ${input_filename} ${out_filename}echo cdo donedonedone startdatedate -d 1 day ${startdate} %Y%m%d done 在运行时输入bash run.sh startdate enddate便可将相应时间段提取并输出为变量_时间的形式如 注意下载的CMIP6数据变量存在2D与3D区别在处理3D变量如ua va时cdo还应当加上sellevel-提取对应的层数这是由于该数据中ua va的垂直层仅有7层而ta hus zg则有28层在后续运行WRF时3D数据的层次应当保持一致 处理好后的数据为了方便根据2d与3d的不同将其合并 #!/bin/bashvar3d(ta ua va zg hus) var2d(tas uas vas ts tsl snw huss psl)#date1$1 startdate$1 enddate$2 hlist(00 06 12 18) while [[ ${startdate} -lt ${enddate} ]] do for hour in ${hlist[]} do date1date -d ${startdate} %Y-%m-%decho ${date1} echo ${hour} suffix${date1}_${hour}.nc echo ${suffix} outputfileMPI_HR_${date1}_${hour}_00:00.nc echo ${outputfile} cdo merge ta_${suffix} ua_${suffix} va_${suffix} zg_${suffix} hus_${suffix} 3D_${outputfile} #cdo merge tas_${suffix} uas_${suffix} vas_${suffix} ts_${suffix} huss_${suffix} tsl_${suffix} psl_${suffix} snw_${suffix} 2D_${outputfile} done startdatedate -d 1 day ${startdate} %Y%m%d echo ${startdate} done 运行后可得到2d_MPI_HR和3dMPI_HR文件。 插值 我们应当注意的是CMIP6的经纬度很多时候并不是等经纬度间距的比如我下载的数据就是100km在海洋上分辨率有时达到50km。这就使得我们在运行之前首先要将其插值到均一的lat/lon坐标下否则WRF将很难处理。 值得注意的是CMIP6数据可分为大气与海洋两部分而大气的经纬度与海洋的经纬度则存在差异比如大气的经纬度数据为一维数据海洋则以二维数据给出因此插值时需要分开处理。请在插值前弄清楚变量的经纬度网格。 tas经纬度以一维表征 tos经纬度网格为曲线网格经纬度为二维形式 对于两种在ncl中使用不同的插值函数即可对一维使用rectilinear_to_SCRIP将经纬度转为映射文件在使用ESMF_regrid_with_weights插值对二维曲线网格使用curvilinear_to_SCRIP函数再使用ESMF_regrid_with_weights插值。 以下为插值的代码示例 undef (regrid_MPI) function regrid_MPI(fname:string,inputv:numeric) local regrid_var,MPI_var,lat,lon,inputf begin inputfaddfile(fname,r) latinputf-latitude loninputf-longitudeOpt True OptSrcRegional True OptForceOverwrite True OptPrintTimings True OptTitle MPI-ESM1 OptCopyVarAtts True ;OptGridMask where(.not.ismissing(zg),1,0) OptCopyVarCoords False srcGridName SCRIP_MPI-ESM1_grid.nc curvilinear_to_SCRIP(srcGridName, lat,lon, Opt) delete(Opt) ;---------------------------------------------------------------------- ; Convert destination grid to a SCRIP convention file. ;---------------------------------------------------------------------- dstGridName dst_SCRIP.nc Opt True OptLLCorner (/ -90.d, 0.d/) OptURCorner (/ 90.d,360.d/) OptForceOverwrite True OptPrintTimings Truelatlon_to_SCRIP(dstGridName,1x1,Opt) ;---Clean up delete(Opt) ;---------------------------------------------------------------------- ; Generate the weights that take you from the NCEP grid to a ; 1x1 degree grid. ;----------------------------------------------------------------------wgtFileName MPI_2_Rect.ncOpt TrueOptInterpMethod bilinear ; defaultOptForceOverwrite TrueOptPrintTimings TrueESMF_regrid_gen_weights(srcGridName,dstGridName,wgtFileName,Opt)delete(Opt);--------------------------------- ;---------------------------------------------------------------------- ; Apply the weights to a given variable ;----------------------------------------------------------------------Opt TrueOptPrintTimings True;---In V6.1.0, coordinates and attributes are copied automatically regrid_var ESMF_regrid_with_weights(inputv,wgtFileName,Opt) ;printVarSummary(regrid_var) return(regrid_var) end 在这里定义了一个regird_mpi函数在使用是输入文件名以及要插值的变量即可根据经纬度网格点不同可将该函数中的curvilinear_to_SCRIP和rectilinear_to_SCRIP相互替换。 WRF中间文件撰写 最后要将插值后的变量数据转写为WPS的中间文件该中间文件可直接被metgrid.exe读取并生成met_em文件。 ncl中就有现成的函数需要注意的是撰写时变量的FIELD应当包括在METGRID.TBL中相同否则metgrid无法识别。 如果数据是2d则直接撰写如果数据为3d则根据层数循环一层层写 ; for 2d variableFIELD_ICE SEAICEUNITS_ICE 1DESC_ICE ocean seaiceFIELD_ST SST UNITS_ST K DESC_ST sea surface temperaturere_sicregrid_MPI(data_filename,sic) ; re_tosregrid_MPI(data_filename,tos)opt True optprojection 0 ; Equidistant_Lat_Lon optdate DATE1 optmap_source 1×1 optstartloc SWCORNER ; 8 chars exact optstartlon 0 optstartlat -90 optdeltalon 1 optdeltalat 1 ;optis_wind_earth_rel False optis_wind_earth_relative False optlevel 200100wrf_wps_write_int(WPS_IM_root_name,FIELD_ICE,UNITS_ICE,\DESC_ICE,re_sic,opt)pnew2(/925,850,700,600,500,250,50/)*100 ; For 3D variables do jlev0,NLEV2-1optlevel pnew2(jlev)wrf_wps_write_int(WPS_IM_root_name,FIELD_U,UNITS_U,\DESC_U,UonP(jlev,:,:),opt)wrf_wps_write_int(WPS_IM_root_name,FIELD_V,UNITS_V,\DESC_V,VonP(jlev,:,:),opt) end do 最后使用WPS文件夹下的util/./rd_intermediate.exe 确认是否读取成功关于这一部分可参考我以前的博客撰写WPS intermediate file添加海冰场 初始化 将输出的中间文件链接至WPS文件夹修改namelist.wps文件夹metgrid部分的fg_name使其读取我们撰写的中间文件。 之后的步骤就和普通运行WRF一样了请注意由于数据本身的性质土壤层数与垂直层数量较少在设置namelist时记得修改与其保持一致。 要点坑 主要的坑在于数据本身。 3D数据垂直层不一致ua与va数据仅有7层而ta hus zg等数据却又有8层因此在撰写文件时必须注意对应层数保持一致。经纬度格点不一致注意经纬度各点的类别在插值时注意区分。CMIP6数据本身并不是再分析资料而是预测气候变化的模型输出常常会出现数据量与WRF所需不对应的问题请注意各个变量描述。除了2D与2D以外也可以使用CMIP6的2D静态数据如LANDSEA步骤类似主要是通过namelist.wps中的constant_name来设置读取。 相关代码与数据已经发布在Github上请查询Write_CMIP_to_wps_int
http://www.hkea.cn/news/14502616/

相关文章:

  • 西斗门的网站建设成都室内设计公司排名前十
  • 山西省建设厅政务中心网站互联网精准营销
  • 红酒企业网站模板网页设计尺寸比例
  • 网站建设网站管理网站建站ddp
  • 莱州哪里有做网站的大型企业vi设计
  • 公网ip 做网站网站页面确认书
  • 哪个建站系统适合外贸商城网站建设一个旅游网站建设需求分析
  • 免费做的网站怎么设置域名广西建设厅官方网站电话
  • 湛江网站建设皆选小罗24专业比分网站建设
  • 网站建设销售做些什么工作嘉兴做网站的
  • 漯河公司做网站性价比最高网站建设价格
  • 设计师关注的十大网站网站建设需要服务器么
  • 做外贸soho网站的公司吗上海建设工程造价信息网站
  • 商丘做网站推广的公司了解网站基本知识
  • 有了网站怎样做公众号建立个人网站费用
  • 用电脑做网站的历史在哪里找谷歌优化师是做什么的
  • 网站开发素材代码全国火车站等级最新排名
  • wordpress 4.5.2福州seo排名优化
  • 如何搭建网站教程国际网络交易平台
  • 行业网站cms互联网推广企业
  • 免费app制作网站安康网站建设公司价格
  • 高职高专图书馆网站建设网站建设捌金手指专业8
  • 如何做建材团购网站wordpress大幅广告
  • 淮北建设机械网站王占山人物简介
  • 甘肃网站建设开发娱乐网站模板
  • 做烧烤的网站模板网站有什么不好
  • 网站难做吗青岛公司的网站设计
  • 网站开发中网页上传自己做网站怎么加定位
  • 中介做哪些网站网站建设创业经历
  • 单页产品网站源码带后台华为云云速建站教程