Beispiel #1
0
	def __getTrace(self, data):
		"""Trace orbit to the ionosphere
		
		**Belongs to**: :class:`rbspFp`
		
		**Args**: 
			* **data**: a dictionnary containing ephemeris (with keys 'lat', 'lon', 'alt', 'time')
		"""
		import tsyganenko as ts
		import numpy as np

		fname = 'trace.{:%Y%m%d}.{:%Y%m%d}.dat'.format(self.sTime, self.eTime)
		try:
			trace = ts.tsygTrace(filename=fname)
			print 'Read tracing results...'
		except:
			print 'Tracing...'
			trace = ts.tsygTrace(data['lat'], data['lon'], data['alt'], datetime=data['time'], rmin=1.047)
			trace.save( fname )

		self.lonNH = trace.lonNH
		self.latNH = trace.latNH
		self.lonSH = trace.lonSH
		self.latSH = trace.latSH
		self.times = trace.datetime

		# Mark apogees
		mins = np.r_[True, trace.rho[1:] >= trace.rho[:-1]] & np.r_[trace.rho[:-1] > trace.rho[1:], True]
		mins[0] = mins[-1] = False
		self.apogees = np.where(mins)[0]
Beispiel #2
0
def trace(date=None, fig=True):
    """
Trace RBSP footprints for a given date (python datetime object)
of for all the available dates 
    """
    datapath = '/home/sebastien/Documents/code/rbsp/data/'

    # Read the data
    year, month, day, hour, minute, second, altA, latA, lonA = np.genfromtxt('data/orbitposA.dat', unpack=True, skiprows=1)
    dates = []
    for y,m,d,h,mn,s in zip(year, month, day, hour, minute, second):
        dates.append( datetime( int(y),int(m),int(d),int(h),int(mn),int(s) ) )
    datesA = np.array(dates)

    year, month, day, hour, minute, second, altB, latB, lonB = np.genfromtxt('data/orbitposB.dat', unpack=True, skiprows=1)
    dates = []
    for y,m,d,h,mn,s in zip(year, month, day, hour, minute, second):
        dates.append( datetime( int(y),int(m),int(d),int(h),int(mn),int(s) ) )
    datesB = np.array(dates)

    # Ganerate day-by-day array
    if not date:
        datesAll = np.concatenate((datesA, datesB))
        un, inds = np.unique( [d.strftime('%Y%m%d') for d in datesAll], return_index=True )
        dateIn = datesAll[inds]
    else:
        dateIn = [date]

    # Generate traces day-by-day
    for day in dateIn:
        print 'Tracing {}'.format(day.strftime('%Y-%b-%d'))
        # First A
        inds = [d.date()==day.date() for d in datesA]
        sdates = datesA[np.array(inds)]
        if len(sdates) >= 1:
            # trace points
            lats = latA[np.array(inds)]
            lons = lonA[np.array(inds)]
            rhos = altA[np.array(inds)]
            traceA = ts.tsygTrace(lats, lons, rhos, datetime=sdates, rmin=1.047)
            # Save traces
            traceA.save( datapath+'trace.{}.A.dat'.format(day.strftime('%Y%m%d')) )

        # Then B
        inds = [d.date()==day.date() for d in datesB]
        sdates = datesB[np.array(inds)]
        if len(sdates) >= 1:
        # trace points
            lats = latB[np.array(inds)]
            lons = lonB[np.array(inds)]
            rhos = altB[np.array(inds)]
            traceB = ts.tsygTrace(lats, lons, rhos, datetime=sdates, rmin=1.047)
            # Save traces
            traceB.save( datapath+'trace.{}.B.dat'.format(day.strftime('%Y%m%d')) )

    if fig: plot(traceA=traceA, traceB=traceB)
Beispiel #3
0
    def __getTrace(self, data):
        """Trace orbit to the ionosphere

        Parameters
        ----------
        data : dict
            a dictionnary containing ephemeris (with keys 'lat', 'lon', 'alt', 'time')

        Returns
        -------
        Nothing

        Notes
        -----
        Belongs to class rbspFp

        """
        import tsyganenko as ts
        import numpy as np

        fname = 'trace.{:%Y%m%d}.{:%Y%m%d}.dat'.format(self.sTime, self.eTime)
        try:
            trace = ts.tsygTrace(filename=fname)
            logging.info('Read tracing results...')
        except:
            logging.info('Tracing...')
            trace = ts.tsygTrace(data['lat'],
                                 data['lon'],
                                 data['alt'],
                                 datetime=data['time'],
                                 rmin=1.047)
            trace.save(fname)

        self.lonNH = trace.lonNH
        self.latNH = trace.latNH
        self.lonSH = trace.lonSH
        self.latSH = trace.latSH
        self.times = trace.datetime

        # Mark apogees
        mins = np.r_[True, trace.rho[1:] >= trace.rho[:-1]] & np.r_[
            trace.rho[:-1] > trace.rho[1:], True]
        mins[0] = mins[-1] = False
        self.apogees = np.where(mins)[0]
Beispiel #4
0
    def __getTrace(self, data):
        """Trace orbit to the ionosphere

        Parameters
        ----------
        data : dict
            a dictionnary containing ephemeris (with keys 'lat', 'lon', 'alt', 'time')

        Returns
        -------
        Nothing

        Notes
        -----
        Belongs to class rbspFp

        """
        import tsyganenko as ts
        import numpy as np

        fname = 'trace.{:%Y%m%d}.{:%Y%m%d}.dat'.format(self.sTime, self.eTime)
        try:
            trace = ts.tsygTrace(filename=fname)
            logging.info('Read tracing results...')
        except:
            logging.info('Tracing...')
            trace = ts.tsygTrace(data['lat'], data['lon'], data['alt'], datetime=data['time'], rmin=1.047)
            trace.save( fname )

        self.lonNH = trace.lonNH
        self.latNH = trace.latNH
        self.lonSH = trace.lonSH
        self.latSH = trace.latSH
        self.times = trace.datetime

        # Mark apogees
        mins = np.r_[True, trace.rho[1:] >= trace.rho[:-1]] & np.r_[trace.rho[:-1] > trace.rho[1:], True]
        mins[0] = mins[-1] = False
        self.apogees = np.where(mins)[0]
Beispiel #5
0
#!/usr/bin/env python

import tsyganenko
Tsyg = tsyganenko.tsygTrace(65.,-148.,6371.) # earth surface near Fairbanks, AK
#!/usr/bin/env python
# coding=utf-8

# region Description
import numpy as np
import tsyganenko

lats = range(10, 90, 10)
lons = np.zeros(len(lats))
rhos = 6372. * np.ones(len(lats))
trace = tsyganenko.tsygTrace(lats, lons, rhos)
print trace
ax = trace.plot()
# endregion

# region Description
# Inputs
# Date and time
year = 2000
doy = 1
hr = 12
mn = 0
sc = 0
# Solar wind speed
vxgse = -400.
vygse = 0.
vzgse = 0.
# Execution parameters
lmax = 5000
rlim = 60.
r0 = 1.
Beispiel #7
0
def trace(date=None, fig=True):
    """
Trace RBSP footprints for a given date (python datetime object)
of for all the available dates 
    """
    datapath = '/home/sebastien/Documents/code/rbsp/data/'

    # Read the data
    year, month, day, hour, minute, second, altA, latA, lonA = np.genfromtxt(
        'data/orbitposA.dat', unpack=True, skiprows=1)
    dates = []
    for y, m, d, h, mn, s in zip(year, month, day, hour, minute, second):
        dates.append(datetime(int(y), int(m), int(d), int(h), int(mn), int(s)))
    datesA = np.array(dates)

    year, month, day, hour, minute, second, altB, latB, lonB = np.genfromtxt(
        'data/orbitposB.dat', unpack=True, skiprows=1)
    dates = []
    for y, m, d, h, mn, s in zip(year, month, day, hour, minute, second):
        dates.append(datetime(int(y), int(m), int(d), int(h), int(mn), int(s)))
    datesB = np.array(dates)

    # Ganerate day-by-day array
    if not date:
        datesAll = np.concatenate((datesA, datesB))
        un, inds = np.unique([d.strftime('%Y%m%d') for d in datesAll],
                             return_index=True)
        dateIn = datesAll[inds]
    else:
        dateIn = [date]

    # Generate traces day-by-day
    for day in dateIn:
        print 'Tracing {}'.format(day.strftime('%Y-%b-%d'))
        # First A
        inds = [d.date() == day.date() for d in datesA]
        sdates = datesA[np.array(inds)]
        if len(sdates) >= 1:
            # trace points
            lats = latA[np.array(inds)]
            lons = lonA[np.array(inds)]
            rhos = altA[np.array(inds)]
            traceA = ts.tsygTrace(lats,
                                  lons,
                                  rhos,
                                  datetime=sdates,
                                  rmin=1.047)
            # Save traces
            traceA.save(datapath +
                        'trace.{}.A.dat'.format(day.strftime('%Y%m%d')))

        # Then B
        inds = [d.date() == day.date() for d in datesB]
        sdates = datesB[np.array(inds)]
        if len(sdates) >= 1:
            # trace points
            lats = latB[np.array(inds)]
            lons = lonB[np.array(inds)]
            rhos = altB[np.array(inds)]
            traceB = ts.tsygTrace(lats,
                                  lons,
                                  rhos,
                                  datetime=sdates,
                                  rmin=1.047)
            # Save traces
            traceB.save(datapath +
                        'trace.{}.B.dat'.format(day.strftime('%Y%m%d')))

    if fig: plot(traceA=traceA, traceB=traceB)
Beispiel #8
0
def plot(date=None, traceA=None, traceB=None, saveDb=True, noPlot=False):
    """
Plot RBSP footprints
    """
    assert not date == None or not (
        traceA == None
        and traceB == None), 'Either give a date, or a trace for A and B'

    datapath = '/home/sebastien/Documents/code/rbsp/data/'
    imgpath = '/home/sebastien/Documents/code/rbsp/img/'

    # Read trace
    if not traceA:
        traceA = ts.tsygTrace(filename=datapath +
                              'trace.{}.A.dat'.format(date.strftime('%Y%m%d')))
    if not traceB:
        traceB = ts.tsygTrace(filename=datapath +
                              'trace.{}.B.dat'.format(date.strftime('%Y%m%d')))
    if not date:
        date = traceA.datetime[0]

    if not noPlot:
        # Init figure
        fig = pylab.figure(figsize=(11, 6.5))
        pylab.rcParams.update({'font.size': 14})
        fovCol = (.5, .6, .6)
        fovAlpha = .2

        # NH
        ax1 = fig.add_subplot(121)
        m1 = Basemap(projection='npstere',
                     boundinglat=35,
                     lon_0=270,
                     resolution='l')
        m1.drawcoastlines(color='.5')
        m1.fillcontinents(color=(.8, .8, .8))
        # draw parallels and meridians.
        m1.drawparallels(np.arange(-80., 81., 20.), color='.6')
        m1.drawmeridians(np.arange(-180., 181., 20.), color='.6')
        m1.drawmapboundary()
        # Draw FP
        x, y = m1(traceA.lonNH, traceA.latNH)
        m1.scatter(x, y, color='r', zorder=3, s=5)
        x, y = m1(traceB.lonNH, traceB.latNH)
        m1.scatter(x, y, color='b', zorder=3, s=5)
        overlayFov(m1,
                   all=True,
                   hemi='north',
                   maxGate=75,
                   dateTime=traceA.datetime[0],
                   fovColor=fovCol,
                   lineColor=fovCol,
                   lineWidth=0,
                   fovAlpha=fovAlpha)

        # SH
        ax2 = fig.add_subplot(122)
        m2 = Basemap(projection='spstere',
                     boundinglat=-35,
                     lon_0=270,
                     resolution='l')
        m2.drawcoastlines(color='.5')
        m2.fillcontinents(color=(.8, .8, .8))
        # draw parallels and meridians.
        m2.drawparallels(np.arange(-80., 81., 20.), color='.6')
        m2.drawmeridians(np.arange(-180., 181., 20.), color='.6')
        m2.drawmapboundary()
        # Draw FP
        x, y = m2(traceA.lonSH, traceA.latSH)
        m2.scatter(x, y, color='r', zorder=3, s=5)
        x, y = m2(traceB.lonSH, traceB.latSH)
        m2.scatter(x, y, color='b', zorder=3, s=5)
        overlayFov(m2,
                   all=True,
                   hemi='south',
                   maxGate=75,
                   dateTime=traceA.datetime[0],
                   fovColor=fovCol,
                   lineColor=fovCol,
                   lineWidth=0,
                   fovAlpha=fovAlpha)

        fig.tight_layout()

        Title = '{}'.format(date.strftime('%Y - %b - %d'))
        fig.text(.02, .92, Title)
        fig.text(.02, .09, 'VAP-A', color='r', va='top')
        fig.text(.1, .09, 'VAP-B', color='b', va='top')

        Title = '{}'.format(date.strftime('%Y - %b - %d'))
        fig.text(.51, .92, Title)
        fig.text(.51, .09, 'VAP-A', color='r', va='top')
        fig.text(.59, .09, 'VAP-B', color='b', va='top')

    # List apogees
    minsA = np.r_[True, traceA.rho[1:] >= traceA.rho[:-1]] & np.r_[
        traceA.rho[:-1] > traceA.rho[1:], True]
    minsA[0] = minsA[-1] = False
    lonANH = traceA.lonNH[minsA]
    latANH = traceA.latNH[minsA]
    lonASH = traceA.lonSH[minsA]
    latASH = traceA.latSH[minsA]
    timeA = traceA.datetime[minsA]
    minsB = np.r_[True, traceB.rho[1:] >= traceB.rho[:-1]] & np.r_[
        traceB.rho[:-1] > traceB.rho[1:], True]
    minsB[0] = minsB[-1] = False
    lonBNH = traceB.lonNH[minsB]
    latBNH = traceB.latNH[minsB]
    lonBSH = traceB.lonSH[minsB]
    latBSH = traceB.latSH[minsB]
    timeB = traceB.datetime[minsB]
    rads = network()

    apoA_NH = ''
    apoA_SH = ''
    radsANH = []
    radsASH = []
    for i in xrange(len(lonANH)):
        apoA_NH += '({}UT, {:4.2f}E, {:4.2f}N) | '.format(
            timeA[i].strftime('%H:%M'), lonANH[i], latANH[i])
        tradANH = rads.getRadarsByPosition(latANH[i],
                                           lonANH[i],
                                           300.,
                                           datetime=timeA[i])
        if not noPlot:
            x, y = m1(lonANH[i], latANH[i])
            # ax1.text(x, y, timeA[i].strftime('%H:%M'), zorder=5, clip_on=True, color=(.3,0,0), fontsize=10, ha='center')
            textHighlighted((x, y),
                            timeA[i].strftime('%H:%M'),
                            ax=ax1,
                            zorder=6,
                            color=(.3, 0, 0),
                            fontsize=10)
        if tradANH:
            radsANH.append(tradANH)
        if saveDb: writeToDb(timeA[i], latANH[i], lonANH[i], 'A', tradANH)

        apoA_SH += '({}UT, {:4.2f}E, {:4.2f}N) | '.format(
            timeA[i].strftime('%H:%M'), lonASH[i], latASH[i])
        tradASH = rads.getRadarsByPosition(latASH[i],
                                           lonASH[i],
                                           300.,
                                           datetime=timeA[i])
        if not noPlot:
            x, y = m2(lonASH[i], latASH[i])
            # ax2.text(x, y, timeA[i].strftime('%H:%M'), zorder=5, clip_on=True, color=(.3,0,0), fontsize=10, ha='center')
            textHighlighted((x, y),
                            timeA[i].strftime('%H:%M'),
                            ax=ax2,
                            zorder=6,
                            color=(.3, 0, 0),
                            fontsize=10)
        if tradASH:
            radsASH.append(tradASH)
        if saveDb: writeToDb(timeA[i], latASH[i], lonASH[i], 'A', tradASH)

    apoB_NH = ''
    apoB_SH = ''
    radsBNH = []
    radsBSH = []
    for i in xrange(len(lonBNH)):
        apoB_NH += '({}UT, {:4.2f}E, {:4.2f}N) '.format(
            timeB[i].strftime('%H:%M'), lonBNH[i], latBNH[i])
        tradBNH = rads.getRadarsByPosition(latBNH[i],
                                           lonBNH[i],
                                           300.,
                                           datetime=timeB[i])
        if not noPlot:
            x, y = m1(lonBNH[i], latBNH[i])
            # ax1.text(x, y, timeB[i].strftime('%H:%M'), zorder=5, clip_on=True, color=(0,0,.3), fontsize=10, ha='center')
            textHighlighted((x, y),
                            timeB[i].strftime('%H:%M'),
                            ax=ax1,
                            zorder=6,
                            color=(0, 0, .3),
                            fontsize=10)
        if tradBNH:
            radsBNH.append(tradBNH)
        if saveDb: writeToDb(timeB[i], latBNH[i], lonBNH[i], 'B', tradBNH)

        apoB_SH += '({}UT, {:4.2f}E, {:4.2f}N) '.format(
            timeB[i].strftime('%H:%M'), lonBSH[i], latBSH[i])
        tradBSH = rads.getRadarsByPosition(latBSH[i],
                                           lonBSH[i],
                                           300.,
                                           datetime=timeB[i])
        if not noPlot:
            x, y = m2(lonBSH[i], latBSH[i])
            # ax2.text(x, y, timeB[i].strftime('%H:%M'), zorder=5, clip_on=True, color=(0,0,.3), fontsize=10, ha='center')
            textHighlighted((x, y),
                            timeB[i].strftime('%H:%M'),
                            ax=ax2,
                            zorder=6,
                            color=(0, 0, .3),
                            fontsize=10)
        if tradBSH:
            radsBSH.append(tradBSH)
        if saveDb: writeToDb(timeB[i], latBSH[i], lonBSH[i], 'B', tradBSH)

    if not noPlot:
        fig.savefig(imgpath +
                    'rbsp.map.{}.pdf'.format(date.strftime('%Y%m%d')))
        fig.savefig(imgpath +
                    'rbsp.map.{}.svg'.format(date.strftime('%Y%m%d')))

        if __name__ == '__main__':
            fig.clf()
            pylab.close(fig)
Beispiel #9
0
def plot(date=None, traceA=None, traceB=None, saveDb=True, noPlot=False):
    """
Plot RBSP footprints
    """
    assert not date==None or not (traceA==None and traceB==None), 'Either give a date, or a trace for A and B'

    datapath = '/home/sebastien/Documents/code/rbsp/data/'
    imgpath = '/home/sebastien/Documents/code/rbsp/img/'

    # Read trace
    if not traceA:
        traceA = ts.tsygTrace(filename=datapath+'trace.{}.A.dat'.format(date.strftime('%Y%m%d')))
    if not traceB:
        traceB = ts.tsygTrace(filename=datapath+'trace.{}.B.dat'.format(date.strftime('%Y%m%d')))
    if not date:
        date = traceA.datetime[0]

    if not noPlot:
        # Init figure
        fig = pylab.figure(figsize=(11,6.5))
        pylab.rcParams.update({'font.size': 14})
        fovCol = (.5,.6,.6)
        fovAlpha = .2

        # NH
        ax1 = fig.add_subplot(121)
        m1 = Basemap(projection='npstere',boundinglat=35,lon_0=270,resolution='l')
        m1.drawcoastlines(color='.5')
        m1.fillcontinents(color=(.8,.8,.8))
        # draw parallels and meridians.
        m1.drawparallels(np.arange(-80.,81.,20.), color='.6')
        m1.drawmeridians(np.arange(-180.,181.,20.), color='.6')
        m1.drawmapboundary()
        # Draw FP
        x, y = m1(traceA.lonNH, traceA.latNH)
        m1.scatter(x, y, color='r', zorder=3, s=5)
        x, y = m1(traceB.lonNH, traceB.latNH)
        m1.scatter(x, y, color='b', zorder=3, s=5)
        overlayFov(m1, all=True, hemi='north', maxGate=75, dateTime=traceA.datetime[0], 
            fovColor=fovCol, lineColor=fovCol, lineWidth=0, fovAlpha=fovAlpha)

        # SH
        ax2 = fig.add_subplot(122)
        m2 = Basemap(projection='spstere',boundinglat=-35,lon_0=270,resolution='l')
        m2.drawcoastlines(color='.5')
        m2.fillcontinents(color=(.8,.8,.8))
        # draw parallels and meridians.
        m2.drawparallels(np.arange(-80.,81.,20.), color='.6')
        m2.drawmeridians(np.arange(-180.,181.,20.), color='.6')
        m2.drawmapboundary()
        # Draw FP
        x, y = m2(traceA.lonSH, traceA.latSH)
        m2.scatter(x, y, color='r', zorder=3, s=5)
        x, y = m2(traceB.lonSH, traceB.latSH)
        m2.scatter(x, y, color='b', zorder=3, s=5)
        overlayFov(m2, all=True, hemi='south', maxGate=75, dateTime=traceA.datetime[0],
            fovColor=fovCol, lineColor=fovCol, lineWidth=0, fovAlpha=fovAlpha)

        fig.tight_layout()

        Title = '{}'.format(date.strftime('%Y - %b - %d'))
        fig.text(.02, .92, Title)
        fig.text(.02, .09, 'VAP-A', color='r', va='top')
        fig.text(.1, .09, 'VAP-B', color='b', va='top')

        Title = '{}'.format(date.strftime('%Y - %b - %d'))
        fig.text(.51, .92, Title)
        fig.text(.51, .09, 'VAP-A', color='r', va='top')
        fig.text(.59, .09, 'VAP-B', color='b', va='top')

    # List apogees
    minsA = np.r_[True, traceA.rho[1:] >= traceA.rho[:-1]] & np.r_[traceA.rho[:-1] > traceA.rho[1:], True]
    minsA[0] = minsA[-1] = False
    lonANH = traceA.lonNH[minsA]
    latANH = traceA.latNH[minsA]
    lonASH = traceA.lonSH[minsA]
    latASH = traceA.latSH[minsA]
    timeA = traceA.datetime[minsA]
    minsB = np.r_[True, traceB.rho[1:] >= traceB.rho[:-1]] & np.r_[traceB.rho[:-1] > traceB.rho[1:], True]
    minsB[0] = minsB[-1] = False
    lonBNH = traceB.lonNH[minsB]
    latBNH = traceB.latNH[minsB]
    lonBSH = traceB.lonSH[minsB]
    latBSH = traceB.latSH[minsB]
    timeB = traceB.datetime[minsB]
    rads = network()

    apoA_NH = ''
    apoA_SH = ''
    radsANH = []
    radsASH = []
    for i in xrange(len(lonANH)):
        apoA_NH += '({}UT, {:4.2f}E, {:4.2f}N) | '.format(timeA[i].strftime('%H:%M'), lonANH[i], latANH[i])
        tradANH = rads.getRadarsByPosition(latANH[i], lonANH[i], 300., datetime=timeA[i])
        if not noPlot:
            x, y = m1(lonANH[i], latANH[i])
            # ax1.text(x, y, timeA[i].strftime('%H:%M'), zorder=5, clip_on=True, color=(.3,0,0), fontsize=10, ha='center')
            textHighlighted((x,y), timeA[i].strftime('%H:%M'), ax=ax1, zorder=6, color=(.3,0,0), fontsize=10)
        if tradANH: 
            radsANH.append( tradANH )
        if saveDb: writeToDb(timeA[i], latANH[i], lonANH[i], 'A', tradANH)

        apoA_SH += '({}UT, {:4.2f}E, {:4.2f}N) | '.format(timeA[i].strftime('%H:%M'), lonASH[i], latASH[i])
        tradASH = rads.getRadarsByPosition(latASH[i], lonASH[i], 300., datetime=timeA[i])
        if not noPlot:
            x, y = m2(lonASH[i], latASH[i])
            # ax2.text(x, y, timeA[i].strftime('%H:%M'), zorder=5, clip_on=True, color=(.3,0,0), fontsize=10, ha='center')
            textHighlighted((x,y), timeA[i].strftime('%H:%M'), ax=ax2, zorder=6, color=(.3,0,0), fontsize=10)
        if tradASH: 
            radsASH.append( tradASH )
        if saveDb: writeToDb(timeA[i], latASH[i], lonASH[i], 'A', tradASH)

    apoB_NH = ''
    apoB_SH = ''
    radsBNH = []
    radsBSH = []
    for i in xrange(len(lonBNH)):
        apoB_NH += '({}UT, {:4.2f}E, {:4.2f}N) '.format(timeB[i].strftime('%H:%M'), lonBNH[i], latBNH[i])
        tradBNH = rads.getRadarsByPosition(latBNH[i], lonBNH[i], 300., datetime=timeB[i])
        if not noPlot:
            x, y = m1(lonBNH[i], latBNH[i])
            # ax1.text(x, y, timeB[i].strftime('%H:%M'), zorder=5, clip_on=True, color=(0,0,.3), fontsize=10, ha='center')
            textHighlighted((x,y), timeB[i].strftime('%H:%M'), ax=ax1, zorder=6, color=(0,0,.3), fontsize=10)
        if tradBNH: 
            radsBNH.append( tradBNH )
        if saveDb: writeToDb(timeB[i], latBNH[i], lonBNH[i], 'B', tradBNH)

        apoB_SH += '({}UT, {:4.2f}E, {:4.2f}N) '.format(timeB[i].strftime('%H:%M'), lonBSH[i], latBSH[i])
        tradBSH = rads.getRadarsByPosition(latBSH[i], lonBSH[i], 300., datetime=timeB[i])
        if not noPlot:
            x, y = m2(lonBSH[i], latBSH[i])
            # ax2.text(x, y, timeB[i].strftime('%H:%M'), zorder=5, clip_on=True, color=(0,0,.3), fontsize=10, ha='center')
            textHighlighted((x,y), timeB[i].strftime('%H:%M'), ax=ax2, zorder=6, color=(0,0,.3), fontsize=10)
        if tradBSH: 
            radsBSH.append( tradBSH )
        if saveDb: writeToDb(timeB[i], latBSH[i], lonBSH[i], 'B', tradBSH)

    if not noPlot:
        fig.savefig( imgpath+'rbsp.map.{}.pdf'.format(date.strftime('%Y%m%d')) )
        fig.savefig( imgpath+'rbsp.map.{}.svg'.format(date.strftime('%Y%m%d')) )

        if __name__ == '__main__':
            fig.clf()
            pylab.close(fig)
Beispiel #10
0
               -d<date>, --date=<date>
                   date in YYYYMMDD format
            '''
            print helpstr
            sys.exit()
        elif opt in ("-d", "--date"):
            dateIn = arg
    print 'Date is %s' % dateIn

    try:
        date = dtmod(dateIn[0:4], dateIn[4:6], dateIn[6:])
    except:
        date = dtmod.utcnow()

    rbspdata = '/home/sebastien/Documents/code/rbsp/'
    traceA = ts.tsygTrace(filename=rbspdata +
                          'trace.{}.A.dat'.format(date.strftime('%Y%m%d')))
    traceB = ts.tsygTrace(filename=rbspdata +
                          'trace.{}.B.dat'.format(date.strftime('%Y%m%d')))

    strdate = date.strftime('%Y%m%d')
    print date.strftime('%Y-%b-%d')

    path = '/home/sebastien/Desktop/rbsp.orbit'

    fig = figure(figsize=(15, 15))
    start = 0
    ip = start
    while ip < len(traceA.lat):
        plotPanels(ind=ip, start=start)

        if ip == start: fig.tight_layout()
Beispiel #11
0
               -d<date>, --date=<date>
                   date in YYYYMMDD format
            '''
         print helpstr
         sys.exit()
      elif opt in ("-d", "--date"):
         dateIn = arg
    print 'Date is %s' % dateIn

    try:
        date = dtmod(dateIn[0:4], dateIn[4:6], dateIn[6:])
    except:
        date = dtmod.utcnow()

    rbspdata = '/home/sebastien/Documents/code/rbsp/'
    traceA = ts.tsygTrace(filename=rbspdata+'trace.{}.A.dat'.format(date.strftime('%Y%m%d')))
    traceB = ts.tsygTrace(filename=rbspdata+'trace.{}.B.dat'.format(date.strftime('%Y%m%d')))

    strdate = date.strftime('%Y%m%d')
    print date.strftime('%Y-%b-%d')

    path = '/home/sebastien/Desktop/rbsp.orbit'

    fig = figure(figsize=(15,15))
    start = 0
    ip = start
    while ip < len(traceA.lat):
        plotPanels(ind=ip, start=start)
        
        if ip == start: fig.tight_layout()
        fig.savefig('{}/rbsp.orbit.{}.{:06d}.png'.format(path, strdate, ip))