dem_folder = ''
    modis_dem = 'modis_si_dem_250m'
    output_folder = r'C:\Users\conwayjp\OneDrive - NIWA\projects\DSC Snow\MODIS'

    # set up lists
    ann_ts_av_sca_m = []
    ann_ts_av_sca_thres_m = []
    ann_dt_m = []
    ann_scd_m = []

    for year_to_take in years_to_take:

        print('loading modis data {}'.format(year_to_take))
        # load modis data for evaluation - trims to extent of catchment
        modis_fsca, modis_dt, modis_mask = load_subset_modis_annual(
            catchment, output_dem, year_to_take, modis_folder, dem_folder,
            modis_dem, mask_folder, catchment_shp_folder)
        modis_sc = modis_fsca >= modis_sc_threshold

        # print('calculating basin average sca')
        num_modis_gridpoints = np.sum(modis_mask)
        ba_modis_sca = []
        ba_modis_sca_thres = []
        for i in range(modis_fsca.shape[0]):
            ba_modis_sca.append(np.nanmean(modis_fsca[i, modis_mask]) / 100.0)
            ba_modis_sca_thres.append(
                np.nansum(modis_sc[i, modis_mask]).astype(np.double) /
                num_modis_gridpoints)

        # print('adding to annual series')
        ann_ts_av_sca_m.append(np.asarray(ba_modis_sca))
    mask_folder = 'C:/Users/conwayjp/OneDrive - NIWA/Temp/DSC-Snow/Masks'
    catchment_shp_folder = 'C:/Users/conwayjp/OneDrive - NIWA/Data/GIS_DATA/Hydrology/Catchments'
    modis_folder = 'C:/Users/conwayjp/OneDrive - NIWA/Data/MODIS_snow/NSDI_SI_cloudfilled'
    dem_folder = 'C:/Users/conwayjp/OneDrive - NIWA/Data/GIS_DATA/Topography/DEM_NZSOS/'
    modis_dem = 'modis_si_dem_250m'
    met_inp_folder = 'D:/DSC-Snow/input_data_hourly'
    dsc_snow_dem_folder = 'C:/Users/conwayjp/OneDrive - NIWA/projects/DSC Snow/Projects-DSC-Snow/runs/input_DEM'
    output_folder = 'C:/Users/conwayjp/OneDrive - NIWA/projects/DSC Snow/Projects-DSC-Snow/runs/output/clutha_nztm250m_erebus'


    for year_to_take in years_to_take:

        print('loading modis data {}'.format(year_to_take))

        # load modis data for evaluation
        modis_fsca, modis_dt, modis_mask = load_subset_modis_annual(catchment, year_to_take, modis_folder, modis_dem, mask_folder)

        # set up output array
        nt = modis_fsca.shape[0]
        ny = modis_fsca.shape[1]
        nx = modis_fsca.shape[2]
        ny_out = ny // rl  # integer divide to ensure fits
        nx_out = nx // rl
        modis_fsca_rs = np.zeros((nt, ny_out, nx_out))

        for i in range(nt):
            modis_sub = modis_fsca[i,]
            fsca_rs = resample_to_fsca(modis_sub, rl=rl)
            modis_fsca_rs[i] = fsca_rs

        # load model data
def calc_modis_catchment_metrics(catchment, years_to_take, mask_folder, modis_folder, modis_dem, output_folder):
    """
    reads in and computes statistics on MODIS data for specific catchments. Requires that mask has been created using
    nz_snow_tools/util/generate_mask.py
    saves output to a pickle file
    :param catchment,  # string identifying catchment modelled
    :param years_to_take
    :param modis_sc_threshold = 50  # value of fsca (in percent) that is counted as being snow covered
    :param mask_folder  folder with numpy masks
    :param modis_folder  folder with cloudfilled modis data
    :param modis_dem name of modis grid 'modis_nz_dem_250m'
    :param output_folder folder to put output pickle file
    """

    # set up lists
    ann_ts_av_sca_m = []
    ann_ts_av_sca_thres_m = []
    ann_dt_m = []
    ann_scd_m = []

    for year_to_take in years_to_take:

        print('loading modis data {}'.format(year_to_take))
        # load modis data for evaluation - trims to extent of catchment
        modis_fsca, modis_dt, modis_mask = load_subset_modis_annual(catchment, year_to_take, modis_folder, modis_dem, mask_folder)
        modis_sc = modis_fsca >= modis_sc_threshold

        # print('calculating basin average sca')
        num_modis_gridpoints = np.sum(modis_mask)
        ba_modis_sca = []
        ba_modis_sca_thres = []
        for i in range(modis_fsca.shape[0]):
            ba_modis_sca.append(np.nanmean(modis_fsca[i, modis_mask]) / 100.0)
            ba_modis_sca_thres.append(np.nansum(modis_sc[i, modis_mask]).astype(np.double) / num_modis_gridpoints)

        # print('adding to annual series')
        ann_ts_av_sca_m.append(np.asarray(ba_modis_sca))
        ann_ts_av_sca_thres_m.append(np.asarray(ba_modis_sca_thres))

        # print('calc snow cover duration')
        modis_scd = np.sum(modis_sc, axis=0)  # count days with snow over threshold
        modis_scd[modis_mask == 0] = -999  # set areas outside catchment to -999
        modis_scd[np.logical_and(np.isnan(modis_fsca[0]), modis_mask == 1)] = -1  # set areas of water to -1

        # add to annual series
        ann_scd_m.append(modis_scd)
        ann_dt_m.append(modis_dt)

        # empty arrays so we don't run out of memory (probably not needed)
        modis_fsca = None
        modis_dt = None
        modis_mask = None
        modis_sc = None
        modis_scd = None

    ann = [ann_ts_av_sca_m, ann_ts_av_sca_thres_m, ann_dt_m, ann_scd_m]
    outfile = '/summary_MODIS_{}_{}_{}_{}_thres{}.pkl'.format(years_to_take[0], years_to_take[-1], catchment, modis_dem, modis_sc_threshold)
    pickle.dump(ann, open(output_folder + outfile, 'wb'), protocol=3)

    # repack into single timeseries
    sca = []
    dts_m = []
    for ts_av_sca_m, dt_m in zip(ann_ts_av_sca_m, ann_dt_m):
        sca.extend(ts_av_sca_m)
        dts_m.extend(dt_m)

    # dts_full = make_regular_timeseries(dt.datetime(years_to_take[0], 1, 1), dt.datetime(years_to_take[-1], 12, 31), 86400)
    outfile_nc = '/ts_MODIS_{}_{}_{}_{}_thres{}.nc'.format(years_to_take[0], years_to_take[-1], catchment, modis_dem, modis_sc_threshold)
    ds = nc.Dataset(output_folder + outfile_nc,'w')
    ds.created = strftime("%Y-%m-%d %H:%M:%S", gmtime())
    ds.comment= 'catchment averaged fractional snow covered area generated with https://github.com/bodekerscientific/nz_snow_tools/eval/catchment_evaluation_modis.py'

    ds.createDimension('time', )
    t = ds.createVariable('time', 'f8', ('time',))
    t.long_name = "time"
    t.units = 'days since 1900-01-01 00:00:00'
    t[:] = nc.date2num(dts_m, units=t.units)

    fsca_var = ds.createVariable('fsca', 'f8', ('time',))
    fsca_var.setncatts({'long_name': 'fractional snow covered area'})
    fsca_var[:] = np.asarray(sca)

    ds.close()