Example #1
0
def test_julian2datetime():
    dt = julian2datetime(2457533.9306828701)
    dt_should = datetime(2016, 5, 25, 10, 20, 10, 999976)
    assert dt == dt_should
    dt = julian2datetime(2457173.8604166666)
    dt_should = datetime(2015, 5, 31, 8, 39)
    assert dt == dt_should
Example #2
0
def CCI_genIO(valid_gpis, start_date, end_date, plot=False):
    
    start_jd = julian.julday(start_date.month, start_date.day, start_date.year, 
                             start_date.hour, start_date.minute, 
                             start_date.second)
    end_jd = julian.julday(end_date.month, end_date.day, end_date.year, 
                             end_date.hour, end_date.minute, 
                             end_date.second)
    
    parent_grid = cci_grid.ESA_CCI_SM_grid_v4_1_indl()
    nearest_gpis = parent_grid.find_nearest_gpi(valid_gpis['lon'], 
                                                valid_gpis['lat'])
    nearest_gpis = np.unique(nearest_gpis[0])
    cells = parent_grid.gpi2cell(nearest_gpis)
    
    header = 'jd,sm,sm_noise,sensor,freqband,nobs,year,month,day'
    descr = [('year', np.uint), ('month', np.uint), ('day', np.uint)]
    
    for cell in sorted(np.unique(cells)):
        gpis, lons, lats = parent_grid.grid_points_for_cell(cell)
        grid = CellGrid(lons, lats,
                        np.ones_like(lons, dtype=np.int16) * cell, gpis=gpis)
        
        cfg_path = ('/home/ipfeil/GitRepos/rs-data-readers/rsdata/'+
                    'ESA_CCI_SM/datasets/')
        version = 'ESA_CCI_SM_v02.3'
        param = 'esa_cci_sm_monthly'
        cci_io = ESA_CCI_SM(version=version, parameter=param, grid=grid,
                         cfg_path=cfg_path)
        
        for ts, gp in cci_io.iter_ts():
            if gp not in nearest_gpis:
                continue
            valid_date_idx = np.where((ts['jd']>=start_jd) & 
                                      (ts['jd']<=end_jd))[0]
            ts_valid_dates = ts[valid_date_idx]
            ts_dates = add_field(ts_valid_dates, descr)
            dates = julian.julian2datetime(ts_dates['jd'])
            years = [date.year for date in dates]
            ts_dates['year'] = years
            ts_dates['month'] = [date.month for date in dates]
            ts_dates['day'] = [date.day for date in dates]
            np.savetxt('/media/sf_D/CCI_csv/'+str(gp)+'.csv', 
                       ts_dates, delimiter=',', header=header)
            if plot == True:
                valid_ind = np.where(ts_valid_dates['sm'] != -999999)
                dates = julian.julian2datetime(ts_valid_dates['jd'][valid_ind])
                plt.plot(dates, ts_valid_dates['sm'][valid_ind])
                plt.title('ESA CCI SM combined monthly average, gpi: '+str(gp))
                plt.xlabel('date')
                plt.ylabel('soil moisture [%]')
                plt.show()
Example #3
0
def test_julian2datetime_array():
    dt = julian2datetime(np.array([2457533.9306828701,
                                   2457533.9306828701]))
    dts = datetime(2016, 5, 25, 10, 20, 10, 999976)
    dt_should = np.array([dts, dts])
    assert type(dt) == np.ndarray
    assert np.all(dt == dt_should)
Example #4
0
def read_CCI(gpi, start=None, end=None):
    
    warp_grid = warp_dgg.DGGv21CPv20_ind_ld()
    cci_grid = cci_quarter_grid.ESA_CCI_SM_grid_v4_1_indl()
    
    cci_gpi = cci_grid.find_nearest_gpi(warp_grid.gpi2lonlat(gpi)[0], 
                                        warp_grid.gpi2lonlat(gpi)[1])[0]

    version = 'ESA_CCI_SM_v02.2'
    parameter = 'esa_cci_sm'
    cci_io = ESA_CCI_SM(version, parameter)
    
    ts = cci_io.read_ts(cci_gpi)            
    
    date_ind = julian.julian2datetime(ts['jd'])
    cci_df = pd.DataFrame(ts['sm'], index=date_ind, columns=['sm'])
    
    if start is not None and end is not None:
        cci_ts = cci_df[start:end]
    elif start is not None:
        cci_ts = cci_df[start:]
    elif end is not None:
        cci_ts = cci_df[:end]
    else:
        cci_ts = cci_df
        
    return cci_ts
Example #5
0
def test_julian2datetime_array():
    dt = julian2datetime(np.array([2457533.9306828701, 2457533.9306828701]))
    dts = datetime(2016, 5, 25, 10, 20, 10, 999976)
    dt_should = np.array([dts, dts])
    assert type(dt) == np.ndarray
    assert np.all(dt == dt_should)
Example #6
0
def test_julian2datetime():
    dt = julian2datetime(2457533.9306828701)
    dt_should = datetime(2016, 5, 25, 10, 20, 10, 999976)
    assert dt == dt_should