ocw/utils.py
def reshape_monthly_to_annually(dataset):
    ''' Reshape monthly binned dataset to annual bins.

    Reshape a monthly binned dataset's 3D value array with shape
    (num_months, num_lats, num_lons) to a 4D array with shape
    (num_years, 12, num_lats, num_lons). This causes the data to be binned
    annually while retaining its original shape.

    It is assumed that the number of months in the dataset is evenly
    divisible by 12. If it is not you will receive error due to
    an invalid shape.

    Example change of a dataset's shape:
    (24, 90, 180) -> (2, 12, 90, 180)

    :param dataset: Dataset object with full-year format
    :type dataset: :class:`dataset.Dataset`

    :returns: Dataset values array with shape (num_year, 12, num_lat, num_lon)
    '''

    values = dataset.values[:]
    data_shape = values.shape
    num_total_month = data_shape[0]
    num_year = num_total_month // 12
    if num_total_month % 12 != 0:
        raise ValueError("Number of months in dataset ({}) does not "
                         "divide evenly into {} year(s)."
                         .format(num_total_month, num_year))

    num_month = 12
    year_month_shape = num_year, num_month
    lat_lon_shape = data_shape[1:]
    # Make new shape (num_year, 12, num_lats, num_lons)
    new_shape = tuple(year_month_shape + lat_lon_shape)
    # Reshape data with new shape
    values.shape = new_shape

    return values
 Reshape monthly binned dataset to annual bins.

    Reshape a monthly binned dataset's 3D value array with shape
    (num_months, num_lats, num_lons) to a 4D array with shape
    (num_years, 12, num_lats, num_lons). This causes the data to be binned
    annually while retaining its original shape.

    It is assumed that the number of months in the dataset is evenly
    divisible by 12. If it is not you will receive error due to
    an invalid shape.

    Example change of a dataset's shape:
    (24, 90, 180) -> (2, 12, 90, 180)

    :param dataset: Dataset object with full-year format
    :type dataset: :class:`dataset.Dataset`

    :returns: Dataset values array with shape (num_year, 12, num_lat, num_lon)
    
Reshape monthly binned dataset to annual bins.
Reshape a monthly binned dataset's 3D value array with shape
(num_months, num_lats, num_lons) to a 4D array with shape
(num_years, 12, num_lats, num_lons). This causes the data to be binned
annually while retaining its original shape.

It is assumed that the number of months in the dataset is evenly
divisible by 12. If it is not you will receive error due to
an invalid shape.


Reshape monthly binned dataset to annual bins . Reshape a monthly binned dataset ' s 3D value array with shape ( num_months num_lats num_lons ) to a 4D array with shape ( num_years 12 num_lats num_lons ) . This causes the data to be binned annually while retaining its original shape . It is assumed that the number of months in the dataset is evenly divisible by 12 . If it is not you will receive error due to an invalid shape .
def reshape_monthly_to_annually(dataset):
    values = dataset.values[:]
    data_shape = values.shape
    num_total_month = data_shape[0]
    num_year = num_total_month // 12
    if num_total_month % 12 != 0:
        raise ValueError("Number of months in dataset ({}) does not "
                         "divide evenly into {} year(s)."
                         .format(num_total_month, num_year))
    num_month = 12
    year_month_shape = num_year, num_month
    lat_lon_shape = data_shape[1:]
    new_shape = tuple(year_month_shape + lat_lon_shape)
    values.shape = new_shape
    return values
def reshape_monthly_to_annually ( dataset ) : values = dataset . values [ : ] data_shape = values . shape num_total_month = data_shape [ 0 ] num_year = num_total_month // 12 if num_total_month % 12 != 0 : raise ValueError ( "Number of months in dataset ({}) does not " "divide evenly into {} year(s)." . format ( num_total_month , num_year ) ) num_month = 12 year_month_shape = num_year , num_month lat_lon_shape = data_shape [ 1 : ] new_shape = tuple ( year_month_shape + lat_lon_shape ) values . shape = new_shape return values
Reshape monthly binned dataset to annual bins.
Reshape monthly binned dataset to annual bins .
''' Reshape monthly binned dataset to annual bins.

    Reshape a monthly binned dataset's 3D value array with shape
    (num_months, num_lats, num_lons) to a 4D array with shape
    (num_years, 12, num_lats, num_lons). This causes the data to be binned
    annually while retaining its original shape.

    It is assumed that the number of months in the dataset is evenly
    divisible by 12. If it is not you will receive error due to
    an invalid shape.

    Example change of a dataset's shape:
    (24, 90, 180) -> (2, 12, 90, 180)

    :param dataset: Dataset object with full-year format
    :type dataset: :class:`dataset.Dataset`

    :returns: Dataset values array with shape (num_year, 12, num_lat, num_lon)
    ''' # Make new shape (num_year, 12, num_lats, num_lons) # Reshape data with new shape
Dataset values array with shape (num_year, 12, num_lat, num_lon)
Dataset values array with shape ( num_year 12 num_lat num_lon )
dataset
Dataset object with full-year format
Dataset object with full - year format