In [ ]:
import pandas as pd
import numpy as np
from charistools.hypsometry import Hypsometry
from charistools.modelEnv import ModelEnv
from charistools.readers import read_tile
In [ ]:
dirname = '/Users/brodzik/projects/CHARIS/evaporation/merra'
%cd $dirname
%ls
In [ ]:
filename = 'merra_evap_high_asia_calibration_basins_month_clim.txt'
In [ ]:
drainageids = ['AM_Vakhsh_at_Komsomolabad',
'IN_Hunza_at_DainyorBridge',
'GA_Karnali_at_Benighat',
'GA_Narayani_at_Devghat',
'GA_SaptaKosi_at_Chatara']
names = ['month'] + drainageids
names
In [ ]:
clim = pd.read_csv(filename, delim_whitespace=True, skiprows=3, header=None,
names=names)
Data units are cm.
In [ ]:
clim
For each of the calibration basins, open the masks and calculate the area.
In [ ]:
def basin_area(drainageid):
myEnv = ModelEnv("/Users/brodzik/ipython_notebooks/charis/calibration_modelEnv_config.ini")
tiles = myEnv.tileIDs_for_drainage(drainageid)
area = 0.
for tile in tiles:
maskFile = myEnv.fixed_filename(type='basin_mask', drainageID=drainageid, tileID=tile)
data = read_tile(maskFile, verbose=True)
area = area + (data[data == 1].sum() * myEnv.modis_tile_500m_pixel_area_km2)
return(area)
In [ ]:
for drainageid in drainageids:
area = basin_area(drainageid)
sub = clim[['month', drainageid]]
sub['Area_km2'] = area
cm_to_km = 1. / (1000. * 100.)
sub['ET_km3'] = sub[drainageid] * cm_to_km * sub['Area_km2']
outfile = drainageid + '.merra.ET_clim.txt'
sub.to_csv(outfile)
In [ ]:
myEnv.modis_tile_500m_pixel_area_km2
In [ ]:
test
In [ ]:
test[test < 6]
In [ ]:
test[test < 6].sum()
In [ ]: