def proc_modscag(fn_list, extent=None, t_srs=None):
<EOL>ds_list = warplib.memwarp_multi_fn(fn_list, res='<STR_LIT>', extent=extent, t_srs=t_srs, r='<STR_LIT>')<EOL>stack_fn = os.path.splitext(fn_list[<NUM_LIT:0>])[<NUM_LIT:0>] + '<STR_LIT:_>' + os.path.splitext(os.path.split(fn_list[-<NUM_LIT:1>])[<NUM_LIT:1>])[<NUM_LIT:0>] + '<STR_LIT>' % len(fn_list) <EOL>ma_stack = np.ma.array([np.ma.masked_greater(iolib.ds_getma(ds), <NUM_LIT:100>) for ds in np.array(ds_list)], dtype=np.uint8)<EOL>stack_count = np.ma.masked_equal(ma_stack.count(axis=<NUM_LIT:0>), <NUM_LIT:0>).astype(np.uint8)<EOL>stack_count.set_fill_value(<NUM_LIT:0>)<EOL>stack_min = ma_stack.min(axis=<NUM_LIT:0>).astype(np.uint8)<EOL>stack_min.set_fill_value(<NUM_LIT:0>)<EOL>stack_max = ma_stack.max(axis=<NUM_LIT:0>).astype(np.uint8)<EOL>stack_max.set_fill_value(<NUM_LIT:0>)<EOL>stack_med = np.ma.median(ma_stack, axis=<NUM_LIT:0>).astype(np.uint8)<EOL>stack_med.set_fill_value(<NUM_LIT:0>)<EOL>out_fn = stack_fn + '<STR_LIT>'<EOL>iolib.writeGTiff(stack_count, out_fn, ds_list[<NUM_LIT:0>])<EOL>out_fn = stack_fn + '<STR_LIT>'<EOL>iolib.writeGTiff(stack_max, out_fn, ds_list[<NUM_LIT:0>])<EOL>out_fn = stack_fn + '<STR_LIT>'<EOL>iolib.writeGTiff(stack_min, out_fn, ds_list[<NUM_LIT:0>])<EOL>out_fn = stack_fn + '<STR_LIT>'<EOL>iolib.writeGTiff(stack_med, out_fn, ds_list[<NUM_LIT:0>])<EOL>ds = gdal.Open(out_fn)<EOL>return ds<EOL>
Process the MODSCAG products for full date range, create composites and reproject