def get_dev_projects_table(scenario, parcels): # requires the user has MTC's urban_data_internal # repository alongside bayarea_urbansim urban_data_repo = ("../urban_data_internal/development_projects/") file = "2021_0309_1939_development_projects.csv" print('Version of development_projects: {}'.format(file)) current_dev_proj = (file) orca.add_injectable("dev_proj_file", current_dev_proj) df = pd.read_csv(os.path.join(urban_data_repo, current_dev_proj)) df = reprocess_dev_projects(df) orca.add_injectable("devproj_len", len(df)) # this filters project by scenario scen = 'scen' + str(scenario) if scen in df: # df[scenario] is 1s and 0s indicating whether to include it df = df[df[scen].astype('bool')] orca.add_injectable("devproj_len_scen", len(df)) df = df.dropna(subset=['geom_id']) cnts = df.geom_id.isin(parcels.geom_id).value_counts() if False in cnts.index: print("%d MISSING GEOMIDS!" % cnts.loc[False]) df = df[df.geom_id.isin(parcels.geom_id)] geom_id = df.geom_id # save for later df = df.set_index("geom_id") df = geom_id_to_parcel_id(df, parcels).reset_index() # use parcel id df["geom_id"] = geom_id.values # add it back again cause it goes away orca.add_injectable("devproj_len_geomid", len(df)) return df
def parcels_geography(parcels, scenario, settings, policy): file = os.path.join(misc.data_dir(), "2021_02_25_parcels_geography.csv") print('Version of parcels_geography: {}'.format(file)) df = pd.read_csv(file, index_col="geom_id") df = geom_id_to_parcel_id(df, parcels) # this will be used to map juris id to name juris_name = pd.read_csv(os.path.join(misc.data_dir(), "census_id_to_name.csv"), index_col="census_id").name10 df["juris_name"] = df.jurisdiction_id.map(juris_name) df.loc[2054504, "juris_name"] = "Marin County" df.loc[2054505, "juris_name"] = "Santa Clara County" df.loc[2054506, "juris_name"] = "Marin County" df.loc[572927, "juris_name"] = "Contra Costa County" # assert no empty juris values assert True not in df.juris_name.isnull().value_counts() df['juris_trich'] = df.juris + '-' + df.trich_id df["pda_id_pba40"] = df.pda_id_pba40.str.lower() # danville wasn't supposed to be a pda df["pda_id_pba40"] = df.pda_id_pba40.replace("dan1", np.nan) # Add Draft Blueprint geographies: PDA, TRA, PPA, sesit if scenario in policy['geographies_db_enable']: df["pda_id_pba50"] = df.pda_id_pba50.str.lower() df["gg_id"] = df.gg_id.str.lower() df["tra_id"] = df.tra_id.str.lower() df['juris_tra'] = df.juris + '-' + df.tra_id df["ppa_id"] = df.ppa_id.str.lower() df['juris_ppa'] = df.juris + '-' + df.ppa_id df["sesit_id"] = df.sesit_id.str.lower() df['juris_sesit'] = df.juris + '-' + df.sesit_id # Use Final Blueprint geographies: PDA, TRA, PPA, sesit elif scenario in policy['geographies_fb_enable']: df["pda_id_pba50"] = df.pda_id_pba50_fb.str.lower() df["gg_id"] = df.fbp_gg_id.str.lower() df["tra_id"] = df.fbp_tra_id.str.lower() df['juris_tra'] = df.juris + '-' + df.tra_id df["ppa_id"] = df.fbp_ppa_id.str.lower() df['juris_ppa'] = df.juris + '-' + df.ppa_id df["sesit_id"] = df.fbp_sesit_id.str.lower() df['juris_sesit'] = df.juris + '-' + df.sesit_id # Use EIR geographies: TRA, PPA, sesit, CoC elif scenario in policy['geographies_eir_enable']: df["pda_id_pba50"] = df.pda_id_pba50_fb.str.lower() df["gg_id"] = df.eir_gg_id.str.lower() df["tra_id"] = df.eir_tra_id.str.lower() df['juris_tra'] = df.juris + '-' + df.tra_id df["ppa_id"] = df.eir_ppa_id.str.lower() df['juris_ppa'] = df.juris + '-' + df.ppa_id df["sesit_id"] = df.eir_sesit_id.str.lower() df['juris_sesit'] = df.juris + '-' + df.sesit_id df['coc_id'] = df.eir_coc_id.str.lower() df['juris_coc'] = df.juris + '-' + df.coc_id return df
def zoning_baseline(parcels, zoning_lookup, settings): file = os.path.join(misc.data_dir(), "2020_11_05_zoning_parcels_hybrid_pba50.csv") print('Version of zoning_parcels: {}'.format(file)) df = pd.read_csv(file, index_col="geom_id") df = pd.merge(df, zoning_lookup.to_frame(), left_on="zoning_id", right_index=True) df = geom_id_to_parcel_id(df, parcels) return df
def static_parcels(settings, parcels): # list of geom_ids to not relocate static_parcels = settings["static_parcels"] # geom_ids -> parcel_ids return geom_id_to_parcel_id(pd.DataFrame(index=static_parcels), parcels).index.values