Example #1
0
def get_gtrack_dim(srcPath, fn_read, cache=False, cache_dir=None, verbose=True):
    '''
    scan granules and return dimension (T,Y,X) or ground tracks

    cache  : mode of cf.devel.collection.cached
              ['cached', 'cached-verbose', 'skip', 'update']
    '''
    '''
    verbose    = False if 'verbose' in cache \
            else True
    '''

    verbose    = verbose    # ??

#    prjName, .....
    PrdLong, yyyy, jjj, srcFName =  srcPath.split(os.path.sep)[-4:]

    print '+ Get Groundtrack Dimension: {}'.format( srcPath)

    cache_dir  = os.path.join( cache_dir, yyyy, jjj )

    Lat, Lon   = cached( srcFName + '.latlon',
                         cache_dir,
                         mode=cache,
                         verbose=verbose )(get_location)(srcPath, fn_read)

    '''
    Timetuple  = cached( srcFName + '.timetuple',
                         cache_dir,
                         mode=cache,
                         verbose=verbose )(get_dtime   )(srcPath, fn_read)
    '''
    DTime     = cached( srcFName + '.timetuple',
                         cache_dir,
                         mode=cache,
                         verbose=verbose )(get_dtime   )(srcPath, fn_read)

    '''
    # exception handling for us 1000000 instead of 0 ------------------------------------
    DTime   = []
    for y,m,d,H,M,S,uS in Timetuple:

        if uS == 1000000:
            DTime.append( datetime(y,m,d,H,M,S,0)+timedelta(seconds=1) )
            print 'Warning [Millisecond] == 1000 : %i %i %i %i %i %i %i'    \
                  %(y,m,d,H,M,S,uS/1000)

        else:
            DTime.append( datetime(y,m,d,H,M,S,uS) )
    # -----------------------------------------------------------------------------------
    '''

    #DTime   = array( DTime )
    return DTime, Lat, Lon
Example #2
0
def get_gtrack_dim(srcPath, fn_read, cache=False, cache_dir=None):
    '''
    scan granules and return dimension (T,Y,X) or ground tracks

    cache  : mode of cf.devel.collection.cached
              ['cached', 'cached-verbose', 'skip', 'update']
    '''

    verbose = False if 'verbose' in cache   \
        else True
    verbose = True

    prjName, prdLv, prdVer, yyyy, mm, srcFName = srcPath.split(
        os.path.sep)[-6:]

    get_dtime, get_location = {
        'TRMM': [get_dtime_trmm, get_location_trmm],
        'GPM': [get_dtime_gpm, get_location_gpm],
    }[prjName.split('.')[0]]

    print('+ Get Groundtrack Dimension: {}'.format(srcPath))

    cache_dir = os.path.join(cache_dir, prjName, prdLv, prdVer, yyyy, mm)

    Lat, Lon = cached(srcFName + '.latlon',
                      cache_dir,
                      mode=cache,
                      verbose=verbose)(get_location)(
                          srcPath, fn_read)  # , cache, cache_dir)

    Timetuple = cached(srcFName + '.timetuple',
                       cache_dir,
                       mode=cache,
                       verbose=verbose)(get_dtime)(
                           srcPath, fn_read)  # , cache, cache_dir)

    # exception handling for us 1000000 instead of 0 ------------------------------------
    DTime = []
    for y, m, d, H, M, S, uS in Timetuple:

        if uS == 1000000:
            DTime.append(datetime(y, m, d, H, M, S, 0) + timedelta(seconds=1))
            print(
                'Warning [NS/ScanTime/Millisecond] == 1000 : %i %i %i %i %i %i %i'
                % (y, m, d, H, M, S, uS / 1000))

        else:
            DTime.append(datetime(y, m, d, H, M, S, uS))
    # -----------------------------------------------------------------------------------

    DTime = array(DTime)

    return DTime, Lat, Lon
Example #3
0
def get_gtrack_dim(srcPath, fn_read, cache=False, cache_dir=None):
    '''
    scan granules and return dimension (T,Y,X) or ground tracks

    cache  : mode of cf.devel.collection.cached
              ['cached', 'cached-verbose', 'skip', 'update']
    '''

    verbose     = False if 'verbose' in cache   \
             else True
    verbose     = True

    prjName, prdLv, prdVer, yyyy, mm, srcFName  = srcPath.split(os.path.sep)[-6:]

    get_dtime, get_location = {'TRMM': [get_dtime_trmm, get_location_trmm],
                               'GPM' : [get_dtime_gpm,  get_location_gpm ],
                   }[ prjName.split('.')[0] ]


    print '+ Get Groundtrack Dimension: {}'.format( srcPath )

    cache_dir           = os.path.join( cache_dir, yyyy, mm )

    Lat, Lon    = cached( srcFName + '.latlon',
                          cache_dir,
                          mode=cache,
                          verbose=verbose )(get_location)(srcPath, fn_read)#, cache, cache_dir)

    Timetuple   = cached( srcFName + '.timetuple',
                          cache_dir,
                          mode=cache,
                          verbose=verbose )(get_dtime   )(srcPath, fn_read)#, cache, cache_dir)


    # exception handling for us 1000000 instead of 0 ------------------------------------
    DTime   = []
    for y,m,d,H,M,S,uS in Timetuple:

        if uS == 1000000:
            DTime.append( datetime(y,m,d,H,M,S,0)+timedelta(seconds=1) )
            print 'Warning [NS/ScanTime/Millisecond] == 1000 : %i %i %i %i %i %i %i'    \
                  %(y,m,d,H,M,S,uS/1000)

        else:
            DTime.append( datetime(y,m,d,H,M,S,uS) )
    # -----------------------------------------------------------------------------------

    DTime       = array( DTime )

    return DTime, Lat, Lon