flag_22_data[monthly_dist_fv[k]] = (np.array(flag_22_data["FV_PER_MONTH"], dtype = float) * np.array(flag_22_data[months[k]], dtype = float)).round(3) flag_22_data.to_csv("output\\f22_apportion_fv.csv") # Flag 22 end # Flag 23: Flag water rights with reported diversions outside of diversion season # select a subset of fields div_season_data = pd.DataFrame(flag_22_data[["WR_WATER_RIGHT_ID", "APPLICATION_NUMBER", "USE_CODE", "DIRECT_DIV_JANUARY", "DIRECT_DIV_FEBRUARY", "DIRECT_DIV_MARCH", "DIRECT_DIV_APRIL", "DIRECT_DIV_MAY", "DIRECT_DIV_JUNE", "DIRECT_DIV_JULY", "DIRECT_DIV_AUGUST", "DIRECT_DIV_SEPTEMBER", "DIRECT_DIV_OCTOBER", "DIRECT_DIV_NOVEMBER", "DIRECT_DIV_DECEMBER"]]) # change back to Y / N data div_season_data = div_season_data.replace("0", "N") div_season_data = div_season_data.replace("1", "Y") # import rms monthly data rms_monthly = imp.import_rms_monthly(100000000000000) rms_monthly.reset_index(inplace = True) # merge data flag_23_data = rms_monthly.merge(div_season_data, how = "inner", left_on = "APPL_ID", right_on = "APPLICATION_NUMBER") # this merge multiplies a lot of records because of multiple use types per application number. # rms monthly reported diversion fields div_reported = ["JANUARY_DIV", "FEBRUARY_DIV", "MARCH_DIV", "APRIL_DIV", "MAY_DIV", "JUNE_DIV", "JULY_DIV", "AUGUST_DIV", "SEPTEMBER_DIV", "OCTOBER_DIV", "NOVEMBER_DIV", "DECEMBER_DIV"] # Field DIV_REPORTED_OUTSIDE_DIV_SEASON criteria for n, month in enumerate(div_reported): flag_23_data["DIV_REPORTED_OUTSIDE_DIV_SEASON"] = np.where( (flag_23_data[div_reported[n]] > 0) & (flag_23_data[months[n]] == "N"), "Y", "N")
# -*- coding: utf-8 -*- """ Created on Mon Apr 12 09:26:48 2021 @author: dpedroja """ import pandas as pd import calendar import numpy as np import import_functions as imp # RESULTS OF QA/QC should be used to clean up the rms dataset # water diversion, i.e., combined DIRECT + STORAGE by month water_div_monthly = imp.import_rms_monthly(90000) water_div_annual = imp.import_rms_annual(999999999) # MEANS # mean annual mean_annual_div = water_div_annual.groupby(["WATER_RIGHT_ID", "APPL_ID"]).mean().round(2) mean_annual_div.drop(["YEAR"], axis = 1, inplace = True) mean_annual_div.columns = ["MEAN_ANNUAL_DIV"] # mean monthly water_div_monthly.reset_index(inplace = True) mean_monthly_div = water_div_monthly.groupby(["WATER_RIGHT_ID", "APPL_ID"]).mean().round(2) mean_monthly_div.drop(["YEAR"], axis = 1, inplace = True) mean_monthly_div.columns = ['MEAN_JANUARY_DIV', 'MEAN_FEBRUARY_DIV', 'MEAN_MARCH_DIV', 'MEAN_APRIL_DIV', 'MEAN_MAY_DIV', 'MEAN_JUNE_DIV', 'MEAN_JULY_DIV', 'MEAN_AUGUST_DIV', 'MEAN_SEPTEMBER_DIV', 'MEAN_OCTOBER_DIV', 'MEAN_NOVEMBER_DIV', 'MEAN_DECEMBER_DIV']