In [ ]:
%pylab notebook
from __future__ import print_function
from charistools.convertors import ET2Hypsometry
from charistools.hypsometry import Hypsometry
from charistools.modelEnv import ModelEnv
import datetime as dt
import matplotlib.pyplot as plt
import os
In [ ]:
configFile = '/Users/brodzik/ipython_notebooks/charis/et_modelEnv_config.ini'
myEnv = ModelEnv(tileConfigFile=configFile)
#basins = ['AM_Vakhsh_at_Komsomolabad',
# 'GA_Karnali_at_Benighat',
# 'GA_Langtang_at_Kyanjin',
# 'GA_Narayani_at_Devghat',
# 'GA_SaptaKosi_at_Chatara',
# 'IN_Hunza_at_DainyorBridge']
ids = ['AM', 'BR', 'IN_v01', 'GA_v01', 'SY_v01']
In [ ]:
fullbasins = ["%s_fullbasinmasks" % id for id in ids]
snowybasins = ["%s_snow_fullbasinmasks" % id for id in ids]
In [ ]:
basins = snowybasins + fullbasins
basins[7:]
In [ ]:
for basin in basins[7:]:
outfile = myEnv.hypsometry_filename(
type='et_by_elevation',
drainageID=basin,
et_source='mod16')
by_elev = ET2Hypsometry(drainageID=basin,
modelEnv=myEnv,
start_yyyymm=200101,
stop_yyyymm=201412,
decimal_places=9,
outfile=outfile,
verbose=True)
In [ ]:
basin='SY_Naryn_at_NarynTown'
outfile = myEnv.hypsometry_filename(
type='et_by_elevation',
drainageID=basin,
et_source='mod16')
#by_elev = ET2Hypsometry(drainageID=basin,
# modelEnv=myEnv,
# start_yyyymm=200101,
# stop_yyyymm=201412,
# decimal_places=9,
# outfile=outfile,
# verbose=True)
outfile
In [ ]:
by_elev = Hypsometry(outfile)
In [ ]:
by_elev.data
In [ ]:
# Collapse the ET by elevation into just a time series by date:
monthlyET_file = "/Users/brodzik/projects/CHARIS/evapotranspiration/mod16/%s.mod16.ET.csv" % basin
monthlyET_file
In [ ]:
by_elev.data_by_doy()
In [ ]:
comments=["Time Series created : " + str(dt.datetime.now()),
"MOD16 ET for drainageID : %s" % basin,
"Units : km^3",
"Hypsometry used to derive this time series: %s" % os.path.basename(outfile),
"COLUMNS: Year Month Day DOY ET"]
f = open(monthlyET_file, "w")
for line in comments:
f.write("# %s\n" % line)
for key,value in by_elev.data_by_doy().iteritems():
print("%4d %2d %2d %3d %.9f" % (key.year, key.month, key.day, key.dayofyear, value),
file=f)
f.close()
In [ ]:
fig, ax = plt.subplots(1)
by_elev.data_by_doy().plot(label="from ET_by_elevation")
ax.legend()
ax.set_title("%s ET" % basin)
In [ ]:
fig, ax = plt.subplots(1)
by_elev.imshow(ax=ax, title=basin + ' ET', cmap='Greens_r',
xlabel='Date', dateFormat='%b', ylabel='Elevation ($m$)',
vmax=0.049)
In [ ]:
# Read the annual file that Karl produced before
from charistools.timeSeries import TimeSeries
origfile = '/Users/brodzik/projects/CHARIS/evapotranspiration/mod16/IN_Hunza_at_DainyorBridge.mod16.ET.csv'
origts = TimeSeries(origfile)
In [ ]:
fig, ax = plt.subplots(1)
origts.data['et'].plot(label="Karl's ET")
by_elev.data_by_doy().plot(label="from ET_by_elevation")
ax.legend()
ax.set_title("%s ET" % basin)
plt.savefig("/Users/brodzik/projects/CHARIS/evapotranspiration/mod16/Hunza_ET_orig_vs_by_elev.png")
In [ ]:
from charistools.timeSeries import TimeSeries
et = TimeSeries(monthlyET_file)
print(et.comments)
print(et.data)
In [ ]: