Planetary Boundary Layer Height

General questions and postings pertaining to the use of HYSPLIT regardless of the platform. For platform specific questions, use the HYSPLIT Platform forums.

Planetary Boundary Layer Height

Postby Berry » November 26th, 2012, 3:01 pm

I need PBL height at a specific area in Eastern Europe with hourly resolution for a duration of a month.Is it possible to be done with Hysplit?
So far I managed to estimate it only for a certain hour of the day its time.
I used reanalysis meteorological data - "Trajectory" - "Total run time (hrs)" = 0 - "Simple Listing".
Thank you in advance.
Berry
 
Posts: 2
Joined: November 26th, 2012, 1:37 pm

Re: Planetary Boundary Layer Height

Postby yaqiang » November 28th, 2012, 1:48 am

NCEP/NCAR Global Reanalysis Data has no PBLH variable (http://ready.arl.noaa.gov/gbl_reanalysis.php). But you can use GDAS1 data (http://ready.arl.noaa.gov/gdas1.php) to get the PBLH data at a specific area. The time resolution of it is 3 hours.

I don't know how to do the job with HYSPLIT. But you can try MeteoInfo to do it.

The ARL data format can be opened and plotted in MeteoInfo. For your case, you can do one-dimension plot with time at a fixed lon/lat point.

Image00285.png
Open and plot ARL data in MeteoInfo
Image00285.png (184.25 KiB) Viewed 655 times


Image00286.png
One-dimension data plot
Image00286.png (67.68 KiB) Viewed 655 times


You can also write a MeteoInfo script to do it automaticly. I will give a sample script if you needed.
yaqiang
 
Posts: 38
Joined: November 22nd, 2012, 4:02 am

Re: Planetary Boundary Layer Height

Postby Berry » November 28th, 2012, 1:00 pm

Even though I waited for a hysplit advice, that worked nice for me.
If anyone has anything else to add as far as Hysplit is concered I would appreciate it. I wanted to something like that at the last slide but calculating PBL height for many more hours and days and with std (http://www.google.gr/url?sa=t&rct=j&q=& ... qE4kV0NpEg )
By the way, meteoinfo is pretty useful tool. Thank you mentioning it. :)
Berry
 
Posts: 2
Joined: November 26th, 2012, 1:37 pm

Re: Planetary Boundary Layer Height

Postby gracy.hm » November 28th, 2012, 1:10 pm

thanks for such a nice forum. I also need to calculate the Boundary layer height(BLH) for my analysis I need to check the daily evolution of BLH also I want the average picture of BLH for month as well as season.
Can I get the MeteoInfo script for that.
gracy.hm
 
Posts: 5
Joined: November 28th, 2012, 12:19 pm

Re: Planetary Boundary Layer Height

Postby gracy.hm » November 28th, 2012, 1:27 pm

Thanks for such a nice forum, I also need boundary layer calculation, can I get the sample MeteoInfo script .
gracy.hm
 
Posts: 5
Joined: November 28th, 2012, 12:19 pm

Re: Planetary Boundary Layer Height

Postby yaqiang » November 28th, 2012, 10:20 pm

Berry,

I checked the user guide of HYSPLIT and found the PBL (mixed layer depth in HYSPLIT) can be calculated from temperature profile or TKE profile if there is no such data in the input meteorological data. Please look at 'Advance / Configuration Setup / Trajectory' section in the user guide file. But I think maybe the PBL data in the meteorological data are more accurate then the calculated ones. Also the PBL data can be output along the trajectory.
yaqiang
 
Posts: 38
Joined: November 22nd, 2012, 4:02 am

Re: Planetary Boundary Layer Height

Postby yaqiang » November 29th, 2012, 1:08 am

gracy.hm,

Two MeteoInfo script files are attached: One for grid average sample and another for station data extraction sample.

Image00287.png
The contour layer created from monthly averaged PBLH grid data
Image00287.png (140.88 KiB) Viewed 633 times


To run MeteoInfo script: Press 'Tools -> Script' menu and open a script editor, in which the script programs can be opened and run.
Image00288.png
MeteoInfo script editor
Image00288.png (64.14 KiB) Viewed 633 times


I am not sure if the text file can be attached with the message, so I copy the code as following:

demo_pbl_grid.py
Code: Select all
#--------------------------------------------------------       
# Author: Yaqiang Wang                                           
# Date: 2012-11-29                                                 
# Purpose: Average grid 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 = "D:\\MetData\\NCEP2010\\"

#---- Set times - this case show seasonal variation
aTime = DateTime.Parse("2010-06-01")

#---- Create a MeteoDataInfo object
mydata = MeteoDataInfo()
#---- Loop
i = 0
gData = GridData()
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
         if i == 0:
            gData = mydata.GetGridData("PBLH")  #Get PBLH grid data
         else:
            gData = gData + mydata.GetGridData("PBLH")  #Sum the grid data
         i += 1

#---- Calculate seasonal average PBLH value
avedata = gData / i   
#---- Set output grid data file
outpath = dataDir + 'PBL_avegriddata.dat'
avedata.SaveAsSurferASCIIFile(outpath)

#---- Create a contour layer from the averaged grid data
mipy.MeteoDataset.SetDrawType("contour")
mipy.MeteoDataset.Display(avedata)

print 'Finished!'


--------------------------------------------------------------------------
demo_pbl_station.py
Code: Select all
#--------------------------------------------------------       
# 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 = "D:\\MetData\\NCEP2010\\"

#---- Set times - this case show seasonal variation
sTime = DateTime.Parse("2010-06-01")
eTime = DateTime.Parse("2010-08-01")
aTime = sTime

#---- Create a MeteoDataInfo object
mydata = MeteoDataInfo()
#---- Set lon/lat of the location
lon = 20.5
lat = 40.5
#---- 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!'
Last edited by yaqiang on November 30th, 2012, 7:38 am, edited 1 time in total.
yaqiang
 
Posts: 38
Joined: November 22nd, 2012, 4:02 am

Re: Planetary Boundary Layer Height

Postby yaqiang » November 29th, 2012, 1:19 am

It's slow to open a big ARL meteorological data in MeteoInfo. The data format has no header part for whole data file, so all records have to be readed to get the intergrated information, such as times, variables and levels. GRIB data format is similar. The data can be transfered and combined easily, but is not effective to read the data information. NetCDF is an opposite data format.
yaqiang
 
Posts: 38
Joined: November 22nd, 2012, 4:02 am


Return to Users

Who is online

Users browsing this forum: No registered users and 1 guest

cron