コード例 #1
0
ファイル: misr_mead.py プロジェクト: maxchernet/MISR-Mead
def do_fapar(save_dir, f_retval, n_site=1, year=2001, lad=1):
    # Write files which will be used by Fortran for calculation of fAPAR
    dir_params = save_dir
    # dir_fapar_mean = save_dir+'output_fapar_mean/'
    # f_fapar_mean = save_dir + 'output_fapar_mean/fapar_in_Ne%d_%d.dat' % (n_site, year)
    dir_fapar_sd = save_dir + "output_fapar_sd/"
    if not os.path.exists(save_dir + "output_fapar_nadim_mean"):
        os.makedirs(save_dir + "output_fapar_nadim_mean")
    if not os.path.exists(save_dir + "output_fapar_nadim_sd"):
        os.makedirs(save_dir + "output_fapar_nadim_sd")
    prior_orig = pickle.load(open(save_dir + "prior_%d_%d.pkl" % (year, n_site), "rb"))
    try:
        (f_fapar_mean, f_fapar_sd) = write_fapar_in(
            f_retval, year, dir_params, dir_fapar_sd, n_train=50, n_site=n_site, lad=lad, prior=prior_orig
        )
    except ValueError:
        print "Something wrong with write_fapar_in()..."
    # compile fortran code using the system call
    os.system("f2py -c -m fapar_py nadimtools.f nadimbrf.f fapar_py.f90")
    # Call fortran functions for fapar
    out_fapar_mean = save_dir + "output_fapar_nadim_mean/fapar_out_Ne%d_%d.dat" % (n_site, year)

    fapar_py.fapar_mean(f_fapar_mean, out_fapar_mean)
    out_fapar_sd = []
    # print 'dir_fapar_sd=', dir_fapar_sd
    # print 'dir_fapar_sd[-1]=', dir_fapar_sd[-1]
    for day_sd in range(1, 366):
        out_fapar_sd = np.append(
            out_fapar_sd, save_dir + "output_fapar_nadim_sd/fapar_out_Ne%d_%d_%d.dat" % (n_site, year, day_sd)
        )
        # print 'out_fapar_sd=', out_fapar_sd
        fapar_py.fapar_mean(dir_fapar_sd + "fapar_in_Ne%d_%d_%d.dat" % (n_site, year, day_sd), out_fapar_sd[-1])

    return f_fapar_mean, f_fapar_sd, out_fapar_mean, out_fapar_sd
コード例 #2
0
ファイル: fapar_7.py プロジェクト: maxchernet/MISR-Mead
        os.system("f2py -c -m fapar_py nadimtools.f nadimbrf.f fapar_py_2.f90")
        for n_site in [3]:
                for year in [2007]:

                        f_fapar_mean = save_dir + 'output_fapar_mean/fapar_in_Ne%d_%d_mean.dat' % (n_site, year)
                        dir_fapar_sd = save_dir+'output_fapar_sd/'
                        f_retval = save_dir+'misr_etm_all_Ne%d_%d_ang7.pkl'%(n_site, year)

                        prior_orig = pickle.load(open(save_dir+'prior_%d_%d.pkl' % (year, n_site), "rb"))

                        write_fapar_in(f_retval, year, dir_params, f_fapar_mean, dir_fapar_sd, n_train=50,\
                                       n_site=n_site, lad=lad, prior=prior_orig)

                        # Call fortran functiooutput_fapar_nadim_meanns for fapar
                        fapar_py.fapar_mean(f_fapar_mean, save_dir_nad +\
                                              'output_fapar_nadim_mean/fapar_out_Ne%d_%d_mean.dat' %\
                                              (n_site, year))
                        for day_sd in range(1, 366):
                                fapar_py_2.fapar_sd(dir_fapar_sd +\
                                                    'fapar_in_Ne%d_%d_%d_ang7.dat'%(n_site, year, day_sd),\
                                                    save_dir_nad +\
                                                    'output_fapar_nadim_sd/fapar_out_Ne%d_%d_%d.dat' %\
                                                    (n_site, year, day_sd))

                                # fapar = np.loadtxt(save_dir + 'output_fapar_nadim_sd/fapar_out_Ne%d_%d_%d.dat' % (n_site, year, day_sd))
                                # plot retrieved FAPAR
                                # plt.plot(-2.*np.log(prior.mu['xlai']), label='prior')
                                # plt.title('year %d' % year)
                                # plt.plot(fapar, label='retrieved year %d' % year)
                                # plt.xlim(1, 366)
                                # plt.legend()