def Pinterpol(date): """ Read the ERA5 data and interpolate to the pressure levels. """ dat = ECMWF('FULL-EA', date, exp=['VOZ', 'QN']) dat._get_T() dat._get_var('O3') dat._get_var('Q') dat.close() dat._mkp() dat._mkz() dat2 = dat.shift2west(-20) dat3 = dat2.extract(lonRange=[-10, 160], latRange=[0, 50], varss='All') dat3._WMO() dat4 = dat3.interpolP(pressPa, varList=['Z', 'T', 'Q', 'O3']) dat4.d2d = dat3.d2d return (dat4)
print('dats length ', len(dats)) date = day1 pts = list(np.arange(420, 610, 5)) varList = ['T', 'VO', 'O3', 'PV', 'Z', 'U', 'V'] while date < day2: print(date) dat = ECMWF('FULL-EA', date, exp='VOZ') dat._get_var('T') dat._get_var('VO') dat._get_var('O3') dat._get_var('U') dat._get_var('V') dat._mkp() dat._mkz() dat._mkthet() dat._mkpv() if date >= datetime(2017, 10, 12, 0): dats[i] = dat.interpolPT(pts, varList=varList, latRange=(5, 35), lonRange=(100, 220)) elif date >= datetime(2017, 10, 3, 0): datr = dat.shift2west(-180) dats[i] = datr.interpolPT(pts, varList=varList, latRange=(20, 50), lonRange=(-180, -60)) elif date >= datetime(2017, 9, 23, 0): datr = dat.shift2west(-180)
date2 = date1 + timedelta(hours=3) dtt = (mean_date-date1).total_seconds()/10800 # test whether the selected part of the orbit is totally in the interval enter_date = ref_date + timedelta(seconds=data['time'][0]) exit_date = ref_date + timedelta(seconds=data['time'][-1]) if enter_date < date1: print('beginning of orbit out by',date1-enter_date,dtt) if exit_date > date2: print('beginning of orbit out by',exit_date-date2,dtt) # get ECMWF data for the orbit and generate a curtain over the retained segment # read data for first bracketting date dat1 = ECMWF('FULL-EI',date1) dat1._get_T() dat1._mkp() dat1._mkz() dat1.close() # generate a curtain along the track for first date sect1 = dat1.interpol_orbit(data['longitude'],data['latitude'],varList=['P','T','Z']) del dat1 # read data for second bracketting date dat2 = ECMWF('FULL-EI',date2) dat2._get_T() dat2._mkp() dat2._mkz() dat2.close() # generate a curtain along the track for scond date sect2 = dat2.interpol_orbit(data['longitude'],data['latitude'],varList=['P','T','Z']) del dat2 sect = curtain() #sect.x = sect1.x