云底高度及边界层高度

https://link.springer.com/chapter/10.1007/978-94-009-3027-8_13

https://agupubs.onlinelibrary.wiley.com/doi/full/10.1002/grl.50836
先前的方法主要通过应用卫星导出的云光学深度和云顶温度获得云几何厚度(CGT),以及将云光学深度和云顶温度与CGT连接的一些额外经验假设[ Smith等1993 ],然后从云顶高度(CTH)中减去CGT以进一步推导出CBH。和记[ 2002]提出了一种基于云光学厚度,云有效半径的CGT估算技术,以及液体含水量在整个垂直范围内保持恒定的假设。类似的方法也被用于光学薄的海洋层积云和早期的对流水云[ Bennartz2007; MeerkÖtter和Zinner2007 ]。除了基于可见光和红外云参数的CBH技术,Wilheit和Hutchison [ 2000]还提出了一种结合被动微波亮温和红外云顶温度来检索CBH的方法。但是,这些方法主要用于特殊云类型(例如,相对较薄,层状或对流云),并且仅限于白天应用。


边界层高度

位温法

首先通过探空资料确定边界层类型,具体方法根据以下公式计算 [2]

[图片上传失败...(image-6dc8a1-1551146241046)]

,CBL→不稳定层结

[图片上传失败...(image-eb428d-1551146241046)]

,SBL→稳定层结

其他,NRL→中性层结

其中,

[图片上传失败...(image-41dd4b-1551146241046)]

位温,其下标表示从地面开始每层的位温,地表面为1;

[图片上传失败...(image-6cc15c-1551146241046)]

为温度随高度变化时,当出现逆温时,最小的位温增量,一般是在稳定层结顶部和稳定层结下部,在实际计算中,该值根据地面特征设置为较小正值。 [2]

罗氏法

Nozaki et al于1973年提出一种用地面气象资料估算混合层高度的方法,即罗氏法。该方法认为大气混合层是由热力湍流和机械湍流共同作用的结果,而且边界层上部大气运动状况与地面气象参数间存在相互联系和反馈作用,因此可以用地面气象资料来估算大气混合层高度。计算公式如下 [2]

[图片上传失败...(image-eecbe6-1551146241046)]

式中:

[图片上传失败...(image-f9b5df-1551146241046)]

为地面气温;

[图片上传失败...(image-70c801-1551146241046)]

露点温度

[图片上传失败...(image-5a6d1e-1551146241046)]

[图片上传失败...(image-876c7c-1551146241046)]

高度处的平均风速;

[图片上传失败...(image-80ddd2-1551146241045)]

为地面粗糙度

[图片上传失败...(image-39d6bb-1551146241045)]

为柯氏参数;

[图片上传失败...(image-e128fd-1551146241045)]

为帕斯圭尔稳定度级别。 [2]

国标法

国标法是根据国家标准GB/T13201-91规定的方法进行计算。该方法认为近地层的热状况在相当程度上取决于地面加热和冷却程度。该方法综合考虑了热力和动力因素,把太阳高度角云量风速分级定量化,然后根据规定的当地具体参数,当大气稳定度为A、B、C和D时 [2]

[图片上传失败...(image-68e614-1551146241045)]

大气稳定度为E和F时:

[图片上传失败...(image-6d81e4-1551146241045)]

[图片上传失败...(image-1eb647-1551146241045)]

式中:

[图片上传失败...(image-435831-1551146241045)]

为混合层厚度(E、F时指近地层厚度,单位:m);

[图片上传失败...(image-d5a34f-1551146241045)]

为10m高度处平均风速(单位:m·s-1),>6m·s-1时取6m·s-1

[图片上传失败...(image-3ac461-1551146241045)]

[图片上传失败...(image-295595-1551146241045)]

为混合层系数;

[图片上传失败...(image-fff358-1551146241045)]

地转参数

[图片上传失败...(image-3151a7-1551146241044)]

为地转角速度,取7.29×10-5rad·s-1

[图片上传失败...(image-b6659d-1551146241044)]

地理纬度,单位:(°)。[2]

https://www.nrsc.gov.in/planetary_boundary

https://www.researchgate.net/post/How_to_estimate_PBL_Planetary_Boundary_Layer_height

https://journals.ametsoc.org/doi/10.1175/JTECH-D-14-00155.1

image.png

https://www.geosci-model-dev.net/7/2599/2014/gmd-7-2599-2014.pdf
PBLH is usually defined as the top of the inversion where the
potential temperature gradient (PTG) first becomes smaller
than a certain threshold γs (Bradley et al., 1993), which is
chosen to be 6.5 K 100 m−1
following Dai et al. (2011). This
is called the PTG method hereafter. For weakly stable boundary layers or type II SBLs, turbulence is generated from wind
shear due to relatively high wind speed and the PBLH is defined as the height of the low-level jet (LLJ) (Melgarejo and
Deardorff, 1974). This is called the LLJ method hereafter

Estimating climatological planetary boundary layer heights
from radiosonde observations: Comparison of methods and
uncertainty analysis


Re: Planetary Boundary Layer Height

Post by hdelattre » March 19th, 2014, 4:20 am

I’m interested to get Planetary Boundary Layer Height to a specific station located South of France (Latitude: 43.52N, Longitude: 4.64E) in July and August 2011. Following the previous discussions on the forum, I downloaded GDAS1 data and MeteoInfo software in order to extract PBLH data.

I can successfully perform One Dimension Plot but don’t manage to run the script “demo_pbl_station.py” to extract the data. It seems that the loop never ends and stays on July data. The control panel indicates in a continuous loop:

C:\Users\hdelattre\Documents\Doctorat\GlobalDataAssimilationSystem\gdas1.jul11.w1
0
C:\Users\hdelattre\Documents\Doctorat\GlobalDataAssimilationSystem\gdas1.jul11.w2
0
C:\Users\hdelattre\Documents\Doctorat\GlobalDataAssimilationSystem\gdas1.jul11.w3
0
C:\Users\hdelattre\Documents\Doctorat\GlobalDataAssimilationSystem\gdas1.jul11.w4
0
C:\Users\hdelattre\Documents\Doctorat\GlobalDataAssimilationSystem\gdas1.jul11.w5
0
C:\Users\hdelattre\Documents\Doctorat\GlobalDataAssimilationSystem\gdas1.jul11.w1
0
etc.

When I attempt to access to the software, it does not respond.

As it’s the first time I work with python, my problem is probably a coding issue. Below is the modified script I tried to run and here are the modifications I performed:

  • Line 18, dataDir value
  • Line 21, sTime value
  • Line 22, eTime value
  • Line 28, lon value
  • Line 29, lat value
  • Lines 40, 41, 55 and 57, I changed the indentation because the software returned the message “Syntax Error: unindent does not match any outer indentation level”

Can somebody help me ?

The modified script:

--------------------------------------------------------

Author: Yaqiang Wang

Date: 2012-11-29

Purpose: Derive station PBL data from ARL meteorological data

Note: Sample

-----------------------------------------------------------

import clr
from System import *
from System.Globalization import *
clr.AddReference("MeteoInfoC.dll")
from MeteoInfoC import *
from MeteoInfoC.Data import *
from MeteoInfoC.Data.MeteoData import *

import os.path

---- Set directories

dataDir = "C:\Users\hdelattre\Documents\Doctorat\GlobalDataAssimilationSystem\"

---- Set times - this case show seasonal variation

sTime = DateTime.Parse("2011-07-01")
eTime = DateTime.Parse("2011-08-31")
aTime = sTime

---- Create a MeteoDataInfo object

mydata = MeteoDataInfo()

---- Set lon/lat of the location

lon = 44.0
lat = 4.0

---- Set output text file

outpath = dataDir + 'PBL_data.txt'
outf = open(outpath, 'w')
outf.write('Time,PBLH')

---- Loop

i = 0
sum = 0.0
while aTime <= eTime:
for w in range(5):
inFile = dataDir + "gdas1." + aTime.ToString("MMM", CultureInfo("en-us")).ToLower() + aTime.ToString("yy") + ".w" + (w + 1).ToString()
print inFile
if os.path.isfile(inFile):
mydata.OpenARLData(inFile) #Open ARL data file
tNum = mydata.GetTimeNumber()
print tNum
for t in range(tNum):
dTime = mydata.GetTime(t)
print dTime.ToString("yyyy-MM-dd HH:00")
mydata.TimeIndex = t #Set time index
gData = mydata.GetGridData("PBLH") #Get PBLH grid data
pblh = gData.ToStation(lon, lat) #Intepolate PBLH data to the location
print 'PBLH = %10.2f' %pblh
outf.write(os.linesep)
outf.write(dTime.ToString("yyyyMMddHH") + ',%-7.2f ' %pblh)
sum += pblh
i += 1

aTime = aTime.AddMonths(1)

outf.close()

---- Calculate seasonal average PBLH value

ave = sum / i
print 'Average PBLH: %10.2f' %ave

print 'Finished!'

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容