def geoLoc(site, maxgates, rsep, maxbeams): #Things to pass in: #site= RadarPos(myBeam.stid) # myBeam.prm.nrang = maxgates # myBeam.prm.rsep = seems to be the same per beam # myBeam.cp import numpy, math, matplotlib, calendar, datetime, pylab from davitpy import pydarn from davitpy.utils import plotUtils import logging import matplotlib.pyplot as plot import matplotlib.lines as lines from matplotlib.ticker import MultipleLocator import matplotlib.patches as patches from matplotlib.collections import PolyCollection, LineCollection from mpl_toolkits.basemap import Basemap, pyproj from matplotlib.figure import Figure import matplotlib.cm as cm from matplotlib.backends.backend_agg import FigureCanvasAgg xmin, ymin, xmax, ymax = 1e16, 1e16, -1e16, -1e16 fovs, lonFull, latFull = [], [], [] lonC, latC = [], [] latFull.append(site.geolat) lonFull.append(site.geolon) latC.append(site.geolat) #latC and lonC are used for figuring out lonC.append(site.geolon) #where the map should be centered. for i in range(maxbeams): myFov = pydarn.radar.radFov.fov(site=site,rsep=rsep,\ nbeams=maxbeams,ngates= maxgates,coords='geo') fovs.append(myFov) for b in range(0, maxbeams + 1): for k in range(0, maxgates + 1): lonFull.append(myFov.lonFull[b][k]) latFull.append(myFov.latFull[b][k]) k = maxgates b = 0 latC.append(myFov.latFull[b][k]) lonC.append(myFov.lonFull[b][k]) b = maxbeams latC.append(myFov.latFull[b][k]) lonC.append(myFov.lonFull[b][k]) fEdgeLat = myFov.latFull[0][k] fEdgeLon = myFov.lonFull[0][k] lEdgeLat = myFov.latFull[b][k] lEdgeLon = myFov.lonFull[b][k] cEdgeLat = myFov.latFull[int(b / 2)][k] cEdgeLon = myFov.lonFull[int(b / 2)][k] lat_0 = myFov.latFull[int(b / 2)][int(k / 2)] lon_0 = myFov.lonFull[int(b / 2)][int(k / 2)] tmpmap = plotUtils.mapObj(coords='geo', projection='stere', width=10.0**3, height=10.0**3, lat_0=lat_0, lon_0=lon_0) xsite, ysite = tmpmap(site.geolon, site.geolat) fex, fey = tmpmap(fEdgeLon, fEdgeLat) lex, ley = tmpmap(lEdgeLon, lEdgeLat) cex, cey = tmpmap(cEdgeLon, cEdgeLat) bwidth = numpy.sqrt((fex - lex)**2 + (fey - ley)**2) leWidth = numpy.sqrt((fex - xsite)**2 + (fey - ysite)**2) riWidth = numpy.sqrt((xsite - lex)**2 + (ysite - ley)**2) if bwidth < leWidth: if leWidth < riWidth: width = riWidth else: width = leWidth elif bwidth < riWidth: if riWidth < leWidth: width = leWidth else: width = riWidth else: width = bwidth height = numpy.sqrt((cex - xsite)**2 + (cey - ysite)**2) dist = width / 50. cTime = datetime.datetime.utcnow() #draw the actual map we want return lon_0, lat_0, fovs, dist, width, height
def geoLoc(site,maxgates, rsep, maxbeams): #Things to pass in: #site= RadarPos(myBeam.stid) # myBeam.prm.nrang = maxgates # myBeam.prm.rsep = seems to be the same per beam # myBeam.cp import numpy,math,matplotlib,calendar,datetime,pylab from davitpy import pydarn from davitpy.utils import plotUtils import logging import matplotlib.pyplot as plot import matplotlib.lines as lines from matplotlib.ticker import MultipleLocator import matplotlib.patches as patches from matplotlib.collections import PolyCollection,LineCollection from mpl_toolkits.basemap import Basemap, pyproj from matplotlib.figure import Figure import matplotlib.cm as cm from matplotlib.backends.backend_agg import FigureCanvasAgg xmin,ymin,xmax,ymax = 1e16,1e16,-1e16,-1e16 fovs,lonFull,latFull=[],[],[] lonC,latC = [],[] latFull.append(site.geolat) lonFull.append(site.geolon) latC.append(site.geolat) #latC and lonC are used for figuring out lonC.append(site.geolon) #where the map should be centered. for i in range(maxbeams): myFov = pydarn.radar.radFov.fov(site=site,rsep=rsep,\ nbeams=maxbeams,ngates= maxgates,coords='geo') fovs.append(myFov) for b in range(0,maxbeams+1): for k in range(0,maxgates+1): lonFull.append(myFov.lonFull[b][k]) latFull.append(myFov.latFull[b][k]) k=maxgates b=0 latC.append(myFov.latFull[b][k]) lonC.append(myFov.lonFull[b][k]) b=maxbeams latC.append(myFov.latFull[b][k]) lonC.append(myFov.lonFull[b][k]) fEdgeLat = myFov.latFull[0][k] fEdgeLon = myFov.lonFull[0][k] lEdgeLat = myFov.latFull[b][k] lEdgeLon = myFov.lonFull[b][k] cEdgeLat = myFov.latFull[int(b/2)][k] cEdgeLon = myFov.lonFull[int(b/2)][k] lat_0 = myFov.latFull[int(b/2)][int(k/2)] lon_0 = myFov.lonFull[int(b/2)][int(k/2)] tmpmap = plotUtils.mapObj(coords='geo',projection='stere', width=10.0**3, height=10.0**3, lat_0=lat_0, lon_0=lon_0) xsite,ysite = tmpmap(site.geolon,site.geolat) fex,fey = tmpmap(fEdgeLon,fEdgeLat) lex,ley = tmpmap(lEdgeLon,lEdgeLat) cex,cey = tmpmap(cEdgeLon,cEdgeLat) bwidth = numpy.sqrt((fex-lex)**2+(fey-ley)**2) leWidth = numpy.sqrt((fex-xsite)**2+(fey-ysite)**2) riWidth = numpy.sqrt((xsite-lex)**2+(ysite-ley)**2) if bwidth <leWidth: if leWidth < riWidth: width = riWidth else: width = leWidth elif bwidth <riWidth: if riWidth < leWidth: width = leWidth else: width = riWidth else: width = bwidth height = numpy.sqrt((cex-xsite)**2+(cey-ysite)**2) dist = width/50. cTime = datetime.datetime.utcnow() #draw the actual map we want return lon_0,lat_0,fovs,dist,width,height
overlay_param="AvgEe" dmsp_aacgm=False if overlay_param == "JEe": color_norm = colors.LogNorm(vmin=0.1, vmax=0.5*1.e2) guvi_cbar_label = "Energy Flux " + r"(ergs/s/cm$^{2}$)" if overlay_param == "AvgEe": color_norm = colors.LogNorm(vmin=0.5, vmax=15) guvi_cbar_label = "Ave Energy (keV)" if overlay_param == "JNEe": color_norm = colors.LogNorm(vmin=1.e7, vmax=1.e10) guvi_cbar_label = "Number Flux " + "r(#/s/cm$^{2}$)" # Plot a map fig, ax = plt.subplots(figsize=(15,15)) mobj = plotUtils.mapObj(ax=ax, datetime=stime, lon_0=0., boundinglat=50., gridLabels=False, gridLatRes=10., coords=coords, fillContinents='None') # Overlay DMSP SSJ Data for sat in dmsp_sat_num: ssj_mappable = overlay_ssj_JE_E0_JNE(mobj, stime, etime, sat, color_norm=color_norm, cmap=cmap, overlay_param=overlay_param, aacgm=dmsp_aacgm) # Overlay TIMED-GUVI data guvi_mappable = overlay_guvi_JE_E0_JNE(mobj, stime, etime, guvi_orbit, color_norm=color_norm, cmap=cmap, data_level="L3", overlay_param=overlay_param, hemi="north", coords=coords) # Add a colorbar cbar = fig.colorbar(mappable=guvi_mappable, ax=ax, shrink=0.6) cbar.set_label(guvi_cbar_label, size=15.)
import matplotlib matplotlib.use("Agg") import matplotlib.pyplot as plt from mpl_toolkits.basemap import Basemap import numpy as np import datetime as dt from davitpy.utils import plotUtils from davitpy.utils.plotUtils import textHighlighted from davitpy.pydarn.plotting.mapOverlay import overlayRadar, overlayFov dateTime = dt.datetime(2015, 1, 1) fig = plt.figure(figsize=(10,5), dpi=300) ax = fig.add_subplot(121) m = plotUtils.mapObj(projection='npstere', lon_0=270, boundinglat=30, coords="geo", dateTime=dateTime, ax=ax, fill_alpha=.7, ) codes = ['bks', 'fhe','fhw','cve','cvw',"wal", "ade", "adw", "hok", "hkw"] overlayFov(m, codes=codes, dateTime=dateTime, fovColor="darkorange", fovAlpha=0.4, maxGate=75, lineWidth=0.5) codes = ['kap','sas','pgr',"gbr", "ksr","kod","sto","pyk","han"] overlayFov(m, codes=codes, dateTime=dateTime, fovColor="aqua", fovAlpha=0.4, maxGate=75, lineWidth=0.5) codes = ["inv","cly","rkn","lyr"] overlayFov(m, codes=codes, dateTime=dateTime, fovColor="lime", fovAlpha=0.4, maxGate=75, lineWidth=0.5) codes = ['bks', 'fhe','fhw','cve','cvw',"wal", "ade", "adw", "hok", "hkw"] overlayRadar(m, fontSize=30, codes=codes, dateTime=dateTime) codes = ['kap','sas','pgr',"gbr", "ksr","kod","sto","pyk","han"] overlayRadar(m, fontSize=30, codes=codes, dateTime=dateTime) codes = ["inv","cly","rkn","lyr"] overlayRadar(m, fontSize=30, codes=codes, dateTime=dateTime) ax.set_title("Northern Hemisphere", fontdict={"size":20,})
def run(self): while not self.data.empty(): myScan = self.data.get(True, 0.1) for mb in myScan: myBeam = beamData() myBeam = mb break while not self.stoprequest.isSet(): time.sleep(1) timeNow = datetime.datetime.utcnow() myBeam.time = myBeam.time.replace(tzinfo=None) tdif = timeNow - myBeam.time if tdif.seconds > 360: try: reactor.stop() except: logging.error('Reactor already stopped') self.tq.put(0) logging.error('Geo thread stopped') for pr in self.parent.fan['param']: silentRemove(self, "fan_%s.png" % (pr)) silentRemove(self, "geo_%s.png" % (pr)) self.stoprequest.set() break while not self.data.empty(): myBeam = beamData() myBeam = self.data.get() if myBeam.cp != self.oldCpid: self.oldCpid = myBeam.cp self.parent.maxbm = self.parent.maxbeam[0] #updates if maxgates is changing if myBeam.prm.nrang != self.maxgates: logging.info('Changing Gates') self.maxgates = myBeam.prm.nrang self.parent.lon_0,self.parent.lat_0, self.parent.fovs,\ self.parent.dist, self.parent.height,self.parent.width = geoLoc(self.parent.site,\ self.maxgates,myBeam.prm.rsep,int(self.parent.maxbm)) self.parent.myMap = mapObj(coords='geo', projection='stere',\ lat_0=self.parent.lat_0, lon_0=self.parent.lon_0,\ width= self.parent.width*1.3,height = self.parent.height*1.3,\ grid =True) #updates myScan size if the beam number is greater then the current myScan size elif myBeam.bmnum >= len(myScan): bmnum = len(myScan) while myBeam.bmnum > len(myScan): time.sleep(0.1) tmp_myBeam = beamData() tmp_myBeam.bmnum = bmnum tmp_myBeam.time = timeNow.replace(tzinfo=None) myScan.append(tmp_myBeam) bmnum += 1 myScan.append(myBeam) logging.info('Changing Beam number %s' % (myBeam)) self.parent.maxbm = myBeam.bmnum + 1 self.parent.lon_0,self.parent.lat_0, self.parent.fovs,\ self.parent.dist, self.parent.height,self.parent.width = geoLoc(self.parent.site,\ self.maxgates,myBeam.prm.rsep,\ int(self.parent.maxbm)) self.parent.myMap = mapObj(coords='geo', projection='stere',\ lat_0=self.parent.lat_0, lon_0=self.parent.lon_0,\ width= self.parent.width*1.3,height = self.parent.height*1.3,\ anchor = 'N',grid =True,draw=True) else: myScan.pop(myBeam.bmnum) myScan.insert(myBeam.bmnum, myBeam) #Plot and save geographic figure for each parameter try: self.parent.geo['figure'] = plotFan( myScan, [self.parent.rad], fovs=self.parent.fovs, params=self.parent.geo['param'], gsct=self.parent.geo['gsct'], maxbeams=int(self.parent.maxbm), maxgates=self.maxgates, scales=self.parent.geo['sc'], drawEdge=self.parent.geo['drawEdge'], myFigs=self.parent.geo['figure'], bmnum=myBeam.bmnum, site=self.parent.site, tfreq=myBeam.prm.tfreq, noise=myBeam.prm.noisesearch, nave=myBeam.prm.nave, inttime=myBeam.prm.inttsc, rTime=myBeam.time, radN=self.parent.names[0], dist=self.parent.dist, merGrid=self.parent.geo['merGrid'], merColor=self.parent.geo['merColor'], continentBorder=self.parent.geo['continentBorder'], waterColor=self.parent.geo['waterColor'], continentColor=self.parent.geo['continentColor'], backgColor=self.parent.geo['backgColor'], gridColor=self.parent.geo['gridColor'], filepath=self.parent.filepath[0], myMap=self.parent.myMap) except: logging.error('geographic plot missing info') logging.error('Geo Figure: %s' % (sys.exc_info()[0])) #Plot and save beam number vs gates figure for each parameter for i in range(len(self.parent.fan['figure'])): time.sleep(1) if self.parent.fan['param'][i] == 'velocity': self.parent.fan['gsct'] = True else: self.parent.fan['gsct'] = False try: self.parent.fan['figure'][i].clf() self.parent.fan['figure'][i] = plotFgpJson( myScan, self.parent.rad, params=[self.parent.fan['param'][i]], gsct=self.parent.fan['gsct'], scales=[self.parent.fan['sc'][i]], bmnum=myBeam.bmnum, figure=self.parent.fan['figure'][i], tfreq=myBeam.prm.tfreq, noise=myBeam.prm.noisesearch, rTime=myBeam.time, radN=self.parent.names[0]) self.parent.fan['figure'][i].savefig( "%sfan_%s" % (self.parent.filepath[0], self.parent.fan['param'][i])) except: logging.error('fan plot missing info') logging.error('Fan Figure: %s' % (sys.exc_info()[0]))
def run(self): while not self.data.empty(): myScan = self.data.get(True, 0.1) for mb in myScan: myBeam = beamData() myBeam = mb break while not self.stoprequest.isSet(): time.sleep(1) timeNow = datetime.datetime.utcnow() myBeam.time = myBeam.time.replace(tzinfo=None) tdif = timeNow - myBeam.time if tdif.seconds > 360: try: reactor.stop() except: logging.error('Reactor already stopped') self.tq.put(0) logging.error('Geo thread stopped') for pr in self.parent.fan['param']: silentRemove(self,"fan_%s.png" % (pr)) silentRemove(self,"geo_%s.png" % (pr)) self.stoprequest.set() break while not self.data.empty(): myBeam = beamData() myBeam = self.data.get() if myBeam.cp != self.oldCpid: self.oldCpid = myBeam.cp self.parent.maxbm = self.parent.maxbeam[0] #updates if maxgates is changing if myBeam.prm.nrang != self.maxgates: logging.info('Changing Gates') self.maxgates = myBeam.prm.nrang self.parent.lon_0,self.parent.lat_0, self.parent.fovs,\ self.parent.dist, self.parent.height,self.parent.width = geoLoc(self.parent.site,\ self.maxgates,myBeam.prm.rsep,int(self.parent.maxbm)) self.parent.myMap = mapObj(coords='geo', projection='stere',\ lat_0=self.parent.lat_0, lon_0=self.parent.lon_0,\ width= self.parent.width*1.3,height = self.parent.height*1.3,\ grid =True) #updates myScan size if the beam number is greater then the current myScan size elif myBeam.bmnum >= len(myScan): bmnum = len(myScan) while myBeam.bmnum > len(myScan): time.sleep(0.1) tmp_myBeam = beamData() tmp_myBeam.bmnum = bmnum tmp_myBeam.time = timeNow.replace(tzinfo=None) myScan.append(tmp_myBeam) bmnum += 1 myScan.append(myBeam) logging.info('Changing Beam number %s'%(myBeam)) self.parent.maxbm = myBeam.bmnum+1 self.parent.lon_0,self.parent.lat_0, self.parent.fovs,\ self.parent.dist, self.parent.height,self.parent.width = geoLoc(self.parent.site,\ self.maxgates,myBeam.prm.rsep,\ int(self.parent.maxbm)) self.parent.myMap = mapObj(coords='geo', projection='stere',\ lat_0=self.parent.lat_0, lon_0=self.parent.lon_0,\ width= self.parent.width*1.3,height = self.parent.height*1.3,\ anchor = 'N',grid =True,draw=True) else: myScan.pop(myBeam.bmnum) myScan.insert(myBeam.bmnum,myBeam) #Plot and save geographic figure for each parameter try: self.parent.geo['figure'] = plotFan(myScan,[self.parent.rad], fovs = self.parent.fovs, params=self.parent.geo['param'], gsct=self.parent.geo['gsct'], maxbeams = int(self.parent.maxbm), maxgates=self.maxgates, scales=self.parent.geo['sc'], drawEdge = self.parent.geo['drawEdge'], myFigs = self.parent.geo['figure'], bmnum = myBeam.bmnum, site = self.parent.site, tfreq = myBeam.prm.tfreq, noise = myBeam.prm.noisesearch, nave = myBeam.prm.nave, inttime = myBeam.prm.inttsc, rTime=myBeam.time, radN = self.parent.names[0], dist = self.parent.dist, merGrid = self.parent.geo['merGrid'], merColor = self.parent.geo['merColor'], continentBorder = self.parent.geo['continentBorder'], waterColor = self.parent.geo['waterColor'], continentColor = self.parent.geo['continentColor'], backgColor = self.parent.geo['backgColor'], gridColor = self.parent.geo['gridColor'], filepath = self.parent.filepath[0], myMap = self.parent.myMap) except: logging.error('geographic plot missing info') logging.error('Geo Figure: %s'%(sys.exc_info()[0])) #Plot and save beam number vs gates figure for each parameter for i in range(len(self.parent.fan['figure'])): time.sleep(1) if self.parent.fan['param'][i] == 'velocity': self.parent.fan['gsct'] = True else: self.parent.fan['gsct'] = False try: self.parent.fan['figure'][i].clf() self.parent.fan['figure'][i]=plotFgpJson(myScan,self.parent.rad, params=[self.parent.fan['param'][i]], gsct=self.parent.fan['gsct'], scales=[self.parent.fan['sc'][i]], bmnum = myBeam.bmnum, figure = self.parent.fan['figure'][i], tfreq = myBeam.prm.tfreq, noise = myBeam.prm.noisesearch, rTime=myBeam.time, radN = self.parent.names[0]) self.parent.fan['figure'][i].savefig("%sfan_%s" % (self.parent.filepath[0],self.parent.fan['param'][i])) except: logging.error('fan plot missing info') logging.error('Fan Figure: %s'%(sys.exc_info()[0]))
def main(): import datetime as dt import matplotlib.pyplot as plt from davitpy.utils import plotUtils import plotMapGrd from imagers.timed import timed_utils from overlay_IMAGE import IMAGE_sat from overlay_DMSP import DMSP_sat from overlay_TIMEDGUVI import TIMEDGUVI_sat import matplotlib.cm as cm import sys sys.path.append("../track_wic_si_spot/") from track_max_point import find_filenames overlay_TIMEDGUVI_data = False overlay_IMAGE_data = True IMAGE_datatype = "WIC" wic_si_ratio = True interpolate_IMAGE_data = True overlay_SuperDARN_data = True overlay_MapFitVel = True overlay_CnvCntrs = False overlay_HMB = False overlay_magmeter = True overlay_DMSP_data = True #DMSP_sat_nums=[13] #DMSP_sat_nums=[15] DMSP_sat_nums = [14, 15] coords = "mlt" vec_cmap = cm.jet # Plot iteratively read_wic = False read_si = False if IMAGE_datatype == "WIC": read_wic = True if IMAGE_datatype == "SI": read_si = True ################################################################# # Times when DMSP data is available for 03182002 event # # Time interval where DMSP F13 is available # stm = dt.datetime(2002,3,18,15,2) # etm = dt.datetime(2002,3,18,15,20) # # Time interval where DMSP F14 and F15 is available stm = dt.datetime(2002, 3, 18, 16, 2) etm = dt.datetime(2002, 3, 18, 16, 6) # # Time interval where DMSP F15 is available # stm = dt.datetime(2002,3,18,16,8) # etm = dt.datetime(2002,3,18,16,20) # # Time interval where DMSP F13 is available # stm = dt.datetime(2002,3,18,16,44) # etm = dt.datetime(2002,3,18,17,0) ################################################################# # stm = dt.datetime(2002,3,18,16,20) # etm = dt.datetime(2002,3,18,16,42) # stm = dt.datetime(2002,3,18,15,50) # etm = dt.datetime(2002,3,18,15,52) dtms, fnames = find_filenames(stm, etm, read_si=read_si, read_wic=read_wic) #dtms = [dt.datetime(2002,3,18,16,41)] for dtm in dtms: fig, ax = plt.subplots(figsize=(12, 8)) ax.set_facecolor('black') # Plot a map mobj = plotUtils.mapObj(ax=ax, datetime=dtm, lon_0=0., boundinglat=60., gridLabels=False, gridLatRes=10., coords=coords, fillContinents='None') # Overlay IMAGE data if overlay_IMAGE_data: if wic_si_ratio: IMAGE_wic_si_ratio = IMAGE_sat(dtm, wic_si_ratio=True) IMAGE_wic_si_ratio.overlay_wic_si_ratio( mobj, param="image", gauss_filter=False, vmin=100., vmax=1000., # vmax is ignored here vmin_ratio=0., vmax_ratio=2., alpha=0.3, zorder=3, cmap='bwr') IMAGE_wic_si_ratio.add_cbar(fig, ax, shrink=0.6, label="WIC/SI", label_fontsize=15) else: IMAGE_obj = IMAGE_sat(dtm, datatype=IMAGE_datatype) IMAGE_obj.overlay_data(mobj, param="image", interpolate_data=interpolate_IMAGE_data, overlay_spot_only=False, mark_max_intensity_point=True, max_point_color='b', max_point_size=30, gauss_filter=False, vmin=0, vmax=1000, alpha=1.0, zorder=3, cmap='gist_gray') IMAGE_obj.add_cbar(fig, ax, shrink=0.6, label="Rayleigh (for " + IMAGE_datatype + " data)", label_fontsize=15) IMAGE_obj = IMAGE_sat(dtm, datatype="SI") IMAGE_obj.overlay_data(mobj, param="image", interpolate_data=interpolate_IMAGE_data, overlay_spot_only=True, mark_max_intensity_point=True, max_point_color='r', max_point_size=30, gauss_filter=False, vmin=0, vmax=1000, alpha=1.0, zorder=6, cmap='brg') # IMAGE_obj.add_cbar(fig, ax, shrink=0.6, # label="Rayleigh (for WIC data)", # label_fontsize=15) # Overlay SuperDARN convection flows if overlay_SuperDARN_data: mapDatObj = plotMapGrd.MapConv(dtm, mobj, ax, vec_len_factor=3) if overlay_MapFitVel: mapDatObj.overlayMapFitVel(pltColBar=True, overlayRadNames=True, annotateTime=True, colorBarLabelSize=15.0, marker_size=10.0, alpha=0.7, zorder=5.0, edgecolor='none', cbar_shrink=0.6, colMap=vec_cmap, label_style="web") if overlay_CnvCntrs: mapDatObj.overlayCnvCntrs() if overlay_HMB: mapDatObj.overlayHMB() # Overlay DMSP if overlay_DMSP_data: for DMSP_sat_num in DMSP_sat_nums: DMSP_obj = DMSP_sat(dtm, DMSP_sat_num, data_type="ssies") DMSP_obj.overlay_ssies_data(mobj, ax, interval=2 * 60, velscl=3 * 111., vec_cmap=vec_cmap, vel_scale=[0, 1000.], quality_flag=False) DMSP_obj = DMSP_sat(dtm, DMSP_sat_num, data_type="ssm") DMSP_obj.overlay_ssm_data(mobj, ax, interval=2 * 60, velscl=1.e3, rot_90_clockwise=True) # Overlay TIMED-GUVI if overlay_TIMEDGUVI_data: currDate = dt.datetime(dtm.year, dtm.month, dtm.day) TIMEDGUVI_obj = TIMEDGUVI_sat(currDate) TIMEDGUVI_obj.overlay_data(mobj, ax, inpTime=dtm, timeDelta=40, vmin=0., vmax=3000., alpha=1.0, zorder=1, timeZorder=7., timeColor="white", timeTextColor="r", timeMarkerSize=2., timeFontSize=8., plotCBar=True, autoScale=False, plotType='d135', overlayTime=True, overlayTimeInterval=5, timeMarker='o', plotTitle=False, cbar_shrink=0.6, titleString=None, coords=coords, timedguviCmap='gist_gray') # Overlay magnetometer data from overlay_magnetometer import overlay_magnetometer_stations from overlay_magnetometer import overlay_magnetometer_hvecs if overlay_magmeter: # Overlay magnetometer stations overlay_magnetometer_stations(mobj, ax, dtm, station_label=False, file_dir="../data/magnetometer/") # Overlay magnetometer vectors overlay_magnetometer_hvecs(mobj, ax, dtm, rot_90_clockwise=True, vecscl=2.e3, zorder=5, file_dir="../data/magnetometer/") #ax.set_title(dtm.strftime("%b %d, %Y %H:%M")) #fdir ="../plots/multiinstrument_data_overlay/" + IMAGE_datatype + "/" # "_with_" + IMAGE_datatype # #"_with_TIMEDGUVI" fdir = "../plots/multiinstrument_data_overlay/magnetometer/" #fname = "map_overlay_hvecs_current_" + dtm.strftime("%H%M") #fname = "magmetorCurrent_sdvel_wicSiRatio_" + dtm.strftime("%H%M") fname = "magmetorCurrent_sdvel_wicSiRatio_ssm_ssies_" + dtm.strftime( "%H%M") #fname = "magmetorCurrent_sdvel_ssm_ssies_" + dtm.strftime("%H%M") fig.savefig(fdir + fname, dpi=200)