Commits (2)
......@@ -285,14 +285,18 @@ class AODInstrument(BaseInstrument):
def Average(self,**kwargs):
avgmsk = self.TimeAveragerMask()
avgmsk = self.TimeAveragerMask(**kwargs)
self.avgaod = {wv : np.ma.empty((self.avgtime.size),dtype=self.aod[wv].dtype) \
for wv in self.wllist}
self.stdaod = {wv : np.ma.empty((self.avgtime.size),dtype=self.aod[wv].dtype) \
for wv in self.wllist}
for wv in self.wllist:
self.avgaod[wv][:] = np.ma.masked
for it in range(self.avgtime.size):
if avgmsk[it].any(): self.avgaod[wv][it] = np.ma.mean(self.aod[wv][avgmsk[it]])
if avgmsk[it].any():
self.avgaod[wv][it] = np.ma.mean(self.aod[wv][avgmsk[it]])
self.stdaod[wv][it] = np.ma.std(self.aod[wv][avgmsk[it]])
def PlotObsHisto(self,outdir="./", outNameSuffix='',**kwargs):
......@@ -467,7 +471,7 @@ class AODInstrument(BaseInstrument):
ax.set_ylabel("%s" % (self.units[wv]))
ax.plot(self.avgtime.astype(datetime),self.avgaod[wv],color='royalblue',\
ls='-',lw=2,marker=None,label=None,markersize=4.0)
ls=None,lw=None,marker='o',label=None,markersize=4.0)
if 'yrange' in lkwargs:
ax.set_ylim(lkwargs['yrange']["min"],lkwargs['yrange']["max"])
......
......@@ -412,14 +412,15 @@ class BaseInstrument(object):
An averager to compute timeseries (spatial averages)
It returns the selector to the caller
"""
freq = 1
if 'AvgTimeSerFreq' in kwargs: freq = kwargs['AvgTimeSerFreq']
tstart = self.time.compressed().min().astype(datetime)
tstart = datetime(tstart.year,tstart.month,tstart.day,tstart.hour)
tend = self.time.compressed().max().astype(datetime)
tend = datetime(tend.year,tend.month,tend.day,tend.hour,59,59)
# Fixed to hourly frequency for now, make it changeable afterwards
avgtimestep = timedelta(hours=1)
self.avgtime = np.ma.array([tstart+avgtimestep/2+timedelta(hours=dt) for dt in \
avgtimestep = timedelta(hours=freq)
self.avgtime = np.ma.array([tstart+avgtimestep/2+avgtimestep*i for i in \
range(int((tend-tstart).total_seconds()/ \
avgtimestep.total_seconds()+1))],dtype=self.np_typetime)
self.avgnobs = np.ma.zeros(self.avgtime.size)
......
......@@ -252,19 +252,26 @@ if __name__ == "__main__":
# SLTSR files from Calum
Convert("SLSTR","VIIRS_AOD",
DefPeriod('20200601','20200602'),
"/esarchive/scratch/ekarnezi/CMUG_project/obsfinal/dust",
'/home/eemili/data/SLSTR',
wavelength=[550],
makeplots=('ObsLoc','ObsHisto','ObsOnMap'),
ObsOnMapOpt={'range':{'min':0,'max':2},'markersize':0.5}
)
# Convert("SLSTR","VIIRS_AOD",
# DefPeriod('20200602','20200603'),
# "/esarchive/scratch/ekarnezi/CMUG_project/obsfinal/dust",
# '/home/eemili/data/SLSTR',
# wavelength=[550],
# makeplots=('ObsLoc','ObsHisto','ObsOnMap'),
# ObsOnMapOpt={'range':{'min':0,'max':2},'markersize':0.5}
# )
# PlotObs("SLSTR","VIIRS_AOD",
# '/home/eemili/data/SLSTR/HDAT+20200601',
# outputdir="/home/eemili/data/SLSTR/plots",
# ObsOnMapOpt={'range':{'min':0,'max':1.0}})
PlotObsTimeSeries("SLSTR","VIIRS_AOD",
'/home/eemili/data/SLSTR',
TimeBnd=DefPeriod('20200601','20200603'),
outputdir="/home/eemili/data/SLSTR/plots-timeser",
AvgTimeSerFreq=3,
ObsOnMapOpt={'range':{'min':0,'max':1.0}})
# Old SOFRID L2 data example
# MocageAscii2Hdf5("IASI-SOFRID","IntQtyInstrument", \
......