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
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
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