예제 #1
0
lat = prep.getvarxls(data,'Lat',Cave14C[:,3],0)
vegid = prep.getvarxls(data, 'VegTypeCode_Local', Cave14C[:,3], 0)
vegiduniq = np.unique(vegid[~np.isnan(vegid)])
botD14C = prep.getvarxls(data, 'D14C_BulkLayer',Cave14C[:,3], -1)
clayon = 0
nppon = 0

if clayon == 1:
    sclayfn = 'AncillaryData\\HWSD\\Regridded_ORNLDAAC\\S_CLAY.nc4'
    tclayfn = 'AncillaryData\\HWSD\\Regridded_ORNLDAAC\\T_CLAY.nc4'
    scecclayfn= 'AncillaryData\\HWSD\\Regridded_ORNLDAAC\\S_CEC_CLAY.nc4'
    tcecclayfn= 'AncillaryData\\HWSD\\Regridded_ORNLDAAC\\T_CEC_CLAY.nc4'
    tbulkdenfn= 'AncillaryData\\HWSD\\Regridded_ORNLDAAC\\T_BULK_DEN.nc4'
    sbulkdenfn= 'AncillaryData\\HWSD\\Regridded_ORNLDAAC\\S_BULK_DEN.nc4'
    nppfn = 'AncillaryData\\NPP\\2000_2012meannpp_gCm2yr.nc'
    sclay = prep.getHWSD(sclayfn, lon, lat) # % weight
    tclay = prep.getHWSD(tclayfn, lon, lat)  # % weight
    scecclay = prep.getHWSD(scecclayfn, lon, lat)  # cmol/kg clay
    tcecclay = prep.getHWSD(tcecclayfn, lon, lat)  # cmol/kg clay
    sbulkden = prep.getHWSD(sbulkdenfn, lon, lat)  # g/cm3
    tbulkden = prep.getHWSD(tbulkdenfn, lon, lat)  # g/cm3
    clay = tbulkden*tclay*0.3 + sbulkden*sclay*0.7
    cecclay =  tbulkden*tcecclay*0.3 + sbulkden*scecclay*0.7
if nppon == 1:
    npp = prep.getnpp(nppfn, lon, lat) # gC/m2/yr

dummy = (vegid[:, None] == vegiduniq).astype(float)  # dummy[:,1:]
#x = np.c_[mat.astype(float),mapp.astype(float),dummy[:,1:]]
x = np.c_[mat.astype(float),mapp.astype(float),dummy[:,1:]]
sel = np.logical_and(~np.isnan(Cave14C[:,4]), Cave14C[:,2]==cutdep)
예제 #2
0
ave14C = pd.Series(dum[:,5], index=dum[:,2])
aa['ave14C'] = pd.Series(ave14C, index=aa.index)
aa.to_csv('./prof4modelinglist.csv')

# median sample year
filename = 'Non_peat_data_synthesis.csv'
data = pd.read_csv(filename,encoding='iso-8859-1', skiprows=[1])  
profid = data[data['Start_of_Profile']==1].index # index of profile start
sampleyr = prep.getvarxls(data, 'SampleYear', profid, 0)
print 'median sample year is: ', np.median(sampleyr)
print 'mean sample year is: ', np.nanmean(sampleyr)
#%% extract HWSD soc of the 48 profiles, this file needs to be updated once profile change
sawtcfn = 'AncillaryData\\HWSD\\Regridded_ORNLDAAC\\AWT_S_SOC.nc4'
tawtcfn = 'AncillaryData\\HWSD\\Regridded_ORNLDAAC\\AWT_T_SOC.nc4'
totprof = np.loadtxt('tot48prof.txt', unpack=True, delimiter=',').T
sawtc = prep.getHWSD(sawtcfn, totprof[:,0], totprof[:,1])
tawtc = prep.getHWSD(tawtcfn, totprof[:,0], totprof[:,1])
hwsdsoc = sawtc + tawtc
outf = open('hwsd48profsoc.txt',"w")
for item in hwsdsoc:
    outf.write("%.2f\n" % item)
outf.close()
#%% ---------  plot global 14C modeling D14C histogram vs synthesized data
pathh = "C:\\download\\work\\!manuscripts\\14Cboxmodel\\CMIP5_dataAnalysis\\" + \
        "twobox_modeling\\esmFixClim1"
#glbfn = "C:\\download\work\\!manuscripts\\14Cboxmodel\\CMIP5_dataAnalysis\\" + \
#        "RadioC_onebox_modeling\\Extrapolation\\D14Ctot_equrun_fixmodel.out"
#glbfn = pathh + "\\CESM\\glb_sitescalar_extraD14CSOC\\extratot.out_6.6_0.16"
glbfn = pathh + "\\CESM\\Extrapolate_D14CSOC\\D14C.out"
glbD14C = np.loadtxt(glbfn,unpack=True,delimiter=',',skiprows=1)[2,:].T
#glbD14C = np.loadtxt(glbfn,unpack=True,skiprows=0)[1,:].T
예제 #3
0
            8:[36, 23, 18, 13, 10]} # biome code in my xlsx. pctC from jobaggy

cutdep = 100.
filename = 'Non_peat_data_synthesis.csv'
Cave14C = prep.getCweightedD14C2(filename, cutdep=cutdep)
data = pd.read_csv(filename,encoding='iso-8859-1',index_col='ProfileID', skiprows=[1])
tot1mprofid = Cave14C[np.logical_and(Cave14C[:,1]==0.,Cave14C[:,2]==100.),3]
tot1mprofidlon = prep.getvarxls(data, 'Lon', tot1mprofid, 0)
tot1mprofidlat = prep.getvarxls(data, 'Lat', tot1mprofid, 0)
sitefilename = 'sitegridid2.txt'
dum = np.loadtxt(sitefilename, delimiter=',')
profid4modeling = dum[:,2]
extraprofid = list(set(tot1mprofid) - set(profid4modeling))
sawtcfn = '..\\AncillaryData\\HWSD\\Regridded_ORNLDAAC\\AWT_S_SOC.nc4'
tawtcfn = '..\\AncillaryData\\HWSD\\Regridded_ORNLDAAC\\AWT_T_SOC.nc4'
sawtc = prep.getHWSD(sawtcfn, tot1mprofidlon, tot1mprofidlat)
tawtc = prep.getHWSD(tawtcfn, tot1mprofidlon, tot1mprofidlat)
hwsdsoc = sawtc + tawtc

#%% compare jobaggy soc vs. obs soc, linear interpolation, using pctC
out = []
obss = []
depthh = []
for i in profid4modeling:
    print 'profile is :',i
    obs = 10. * data.loc[i:i,'BulkDensity'] * (data.loc[i:i,'Layer_bottom'] - \
          data.loc[i:i,'Layer_top']) * data.loc[i:i,'pct_C']/100. # kgC/m2
    jobgypctC = np.array(csvbiome[data.loc[i:i,'VegTypeCode_Local'].values[0]])/100.
    f_i = interp1d(np.r_[0,jobgydepth], np.r_[jobgypctC[0],jobgypctC])
    f_x = prep.extrap1d(f_i)
    layerbot = data.loc[i:i,'Layer_bottom'].values