Esempio n. 1
0
from integrated.Modules.Core.Handlers.FileHandler import FileHandler
from integrated.Modules.Hydrology.IHACRES.IHACRES import IHACRES
import pandas as pd

if __name__ == '__main__':

    ClimateData = FileHandler().loadCSV('test_data/climate/Echuca.txt',
                                        columns=[0, 7, 9],
                                        skiprows=41,
                                        delimiter=r'\s*',
                                        engine='python')  #
    ClimateData.index = pd.to_datetime(ClimateData[ClimateData.columns[0]],
                                       format='%Y%m%d')
    ClimateData.columns = ['Date', 'rainfall', 'ET']

    RRmodel = IHACRES(ClimateData, 50)

    prev_storage = 50
    inflow = 100
    irrig_out = 25
    evap = 10
    local_inflow = 10
    base_flow = 5
    deep_drainage = 10
    storage_coef = 0.5
    ET_f = 1.1

    #Test flow calculation
    print RRmodel.calcFlow(prev_storage, inflow, irrig_out, evap, local_inflow,
                           base_flow, deep_drainage, storage_coef, ET_f)
Esempio n. 2
0
     max_separation=getAssetParam(asset_table, gauge, 'Event_gap'), \
     min_duration=getAssetParam(asset_table, gauge, 'Event_dur') )


#End envIndex()

# ## Function to calculate median/total flow/baseflow levels (annual), if total, fun=sum.
# flowsum <- function (x,fun=median,...){
#   summaryby <- as.POSIXlt(time(x))$year + 1900
#   flowsummary <- aggregate(x, by=summaryby, FUN = fun, na.rm=TRUE)
#   return(round(flowsummary,2))
# }

### Script starts here ###

FileHandle = FileHandler()

#Read in input data

## Read in input data

# read in all breakpoint files from 1900 til end of file
date_range = ["1900-01-01", None]
indexes = FileHandle.importFiles("Inputs/index", ext=".csv", walk=False)

# read in asset table
#This could be set as class attribute as it is used as a global in the R script
asset_table = FileHandle.loadCSV("Inputs/ctf_dss.csv")

# read in weights
weightall = FileHandle.loadCSV("Inputs/index/weight/weight.csv")
Esempio n. 3
0
    #Tired of having columns split over several lines
    pd.set_option('max_colwidth', 5000)
    pd.set_option('display.width', 5000)

    TestFarm = FarmInfo(**FarmConfig.BASE_FARM.getParams())
    test_farm_area = 100 #100 Ha

    print "Processing {farm_name}".format(farm_name=TestFarm.name)
    print "--------------------------"

    print "Setting up historical data for Echuca area"
    print "--------------------------"

    #Real data for Echuca
    ClimateData = FileHandler().loadCSV('test_data/climate/climate.csv', columns=['Date', '406265_rain', '406265_evap'], index_col=0, dayfirst=True, parse_dates=True)
    ClimateData.index.name = 'Date'
    ClimateData.columns = ['rainfall', 'ET']

    Climate = Climate(data=ClimateData, low_rainfall_thres_mm=400, high_rainfall_thres_mm=500)
    SurfacePolicy = SurfaceWaterPolicy(Climate)

    #Determine water source costs
    #TODO: Separate this out!
    sw_yearly = FarmConfig.sw_costs['Campaspe']['yearly_costs']
    sw_seasonal = FarmConfig.sw_costs['Campaspe']['water_costs']

    sw_yearly_costs = sw_yearly.loc[['service', 'service_point', 'service_point_local_read', 'surface_drainage_service'], :].sum()['Amount ($/Point)']

    #12ML/Day irrigation system capacity, price simulator says to divide entitlement with 100 = 4.35
    sw_yearly_costs += sw_yearly.loc[['infrastructure_access (ML/Day)'], :].sum()['Amount ($/Point)'] * 0 #4.35