prereise.gather.demanddata.bldg_electrification package

Subpackages

Submodules

prereise.gather.demanddata.bldg_electrification.const module

prereise.gather.demanddata.bldg_electrification.ff2elec_profile_generator_cook module

prereise.gather.demanddata.bldg_electrification.ff2elec_profile_generator_cook.generate_cook_profiles(yr_temps=2019, states=None, bldg_class='res', efficiency='high')[source]

This script returns hourly electricity loads from converting fossil fuel cooking to electric cooking

Parameters:
  • yr_temps (int) – year for temperature, defaults to const.base_year.

  • states (list) – list of states to loop through, defaults to None, in which case const.state_list is used.

  • bldg_class (str) – type of building. Default is residential.

  • efficiency (str) – efficiency of cooking. Default is high.

Raises:
  • TypeError – if yr_temps is not an int. if bldg_class and efficiency are not str.

  • ValueError – if bldg_class is not ‘res’ or ‘com’ if efficiency is not ‘high’ or ‘low’

prereise.gather.demanddata.bldg_electrification.ff2elec_profile_generator_dhw module

prereise.gather.demanddata.bldg_electrification.ff2elec_profile_generator_dhw.func_dhw_cop(temp_c, model)[source]

Generate COPs for input hourly temperatures with a given heat pump model :param list temp_c: hourly temperatures :param str model : type of heat pump :return list cop: Coefficient of performance list

prereise.gather.demanddata.bldg_electrification.ff2elec_profile_generator_dhw.generate_dhw_profiles(yr_temps=2019, states=None, bldg_class='res', hp_model='advperfhp')[source]

Create time series for electricity loads from converting fossil fuel water heating to heat pump water heaters

Parameters:
  • yr_temps (int) – year for temperature, defaults to const.base_year.

  • states (list) – list of states to loop through, defaults to None, in which case const.state_list is used.

  • bldg_class (str) – type of building. Default is residential.

  • hp_model (str) – type of heat pump. Default is advanced performance cold climate heat pump.

Raises:
  • TypeError – if yr_temps is not an int. if bldg_class and hp_model are not str.

  • ValueError – if bldg_class is not ‘res’ or ‘com’ if hp_model is not ‘advperfhp’, ‘midperfhp’ or ‘futurehp’

prereise.gather.demanddata.bldg_electrification.ff2elec_profile_generator_htg module

prereise.gather.demanddata.bldg_electrification.ff2elec_profile_generator_htg.calculate_cop(temp_c, model)[source]
prereise.gather.demanddata.bldg_electrification.ff2elec_profile_generator_htg.generate_htg_profiles(yr_temps=2019, states=None, bldg_class='res', hp_model='advperfhp', output_folder='Profiles')[source]

Generate and write profiles on dist. Create time series for electricity loads from converting fossil fuel heating to electric heat pumps.

Parameters:
  • yr_temps (int) – year for temperature, defaults to const.base_year.

  • states (list) – list of states to loop through, defaults to None, in which case const.state_list is used.

  • bldg_class (str) – type of building.

  • hp_model (str) – type of heat pump.

  • output_folder (str) – location to store profiles (will be created if necessary).

Raises:
  • TypeError – if yr_temps is not an int. if bldg_class and hp_model are not str.

  • ValueError – if yr_temps is not one of the available temperature data year if bldg_class is not ‘res’ or ‘com’ if hp_model is not ‘advperfhp’, ‘midperfhp’ or ‘futurehp’

prereise.gather.demanddata.bldg_electrification.ff2elec_profile_generator_htg.htg_to_cop(temp_c, model)[source]

prereise.gather.demanddata.bldg_electrification.ff_model module

prereise.gather.demanddata.bldg_electrification.ff_model.adjust_puma_slopes(puma_data, state_slopes_res, state_slopes_com, year=2019)[source]

Create per-puma slopes from per-state slopes.

Parameters:
  • puma_data (pandas.DataFrame) – puma data.

  • state_slopes_res (pandas.DataFrame) – residential state slopes.

  • state_slopes_com (pandas.DataFrame) – commercial state slopes.

  • year (int) – year of temperatures to download.

Returns:

(tuple) – a pair of pandas.DataFrame objects for per-puma residential and commercial slopes, respectively.

prereise.gather.demanddata.bldg_electrification.ff_model.calculate_r2(endogenous, residuals)[source]

Calculate r2 value of fit.

Parameters:
  • endogenous (iterable) – vector of observations of endogenous variable.

  • residuals (iterable) – vector of residuals between modeled fit and observations.

Returns:

(float) – r-squared value of fit.

prereise.gather.demanddata.bldg_electrification.ff_model.calculate_state_slopes(puma_data, year=2019)[source]

Estimate regression parameters per-state for residential and commercial fuel use.

Parameters:
  • puma_data (pandas.DataFrame) – data frame of per-puma data.

  • year (int/str) – year of data to use for analysis.

Returns:

(tuple) – a pair of pandas.DataFrame objects for per-state residential and commercial slopes, respectively.

prereise.gather.demanddata.bldg_electrification.floor_area_avg_slopes module

prereise.gather.demanddata.bldg_electrification.floor_area_avg_slopes.get_zone_floor_area(iso, zone_shape, pumas_shp)[source]

Computes the zone floor area for each ISO.

Parameters:
  • iso (str) – abbrev. name of ISO.

  • zone_shape (geopandas.GeoDataFrame) – geo data frame of zone(BA) shape file

  • pumas_shp (geopandas.GeoDataFrame) – geo data frame of pumas shape file

Returns:

(pandas.DataFrame) – Floor area in square meters for all the zones with breakdowns of residential, commercial, total heated and total cooled

Note

zone floor area in square meters saved as csv into Profiles/result_stats

prereise.gather.demanddata.bldg_electrification.floor_area_avg_slopes.main_plots(iso, zone_shape, pumas_shp, state_shp, country_shp, size, plot_show=True)[source]

Creats floor area avraged slopes for all zones within the ISO for one year.

Parameters:
  • iso (str) – abbrev. name of ISO.

  • zone_shape (geopandas.GeoDataFrame) – geo data frame of zone(BA) shape file

  • pumas_shp (geopandas.GeoDataFrame) – geo data frame of pumas shape file

  • state_shp (geopandas.GeoDataFrame) – geo data frame of state shape file

  • country_shp (geopandas.GeoDataFrame) – geo data frame of nation shape file

  • plot_show (bool) – show the plot or not, default to True.

  • size (int) – defining the image size of plots in dpi.

Note

Floor area avg. heating and cooling slope, error and map plots for all zones in each ISO saved as png and csv into Profiles/result_stats/hourly_plots

prereise.gather.demanddata.bldg_electrification.helper module

prereise.gather.demanddata.bldg_electrification.helper.read_shapefile(url)[source]

Read shape files for overlay

Parameters:

url (str) – directory in blob storage that contain the shape file in zip format

Returns:

(geopandas.GeoDataFrame) – geo data frame of the shape file

prereise.gather.demanddata.bldg_electrification.helper.state_shp_overlay(state, state_shp, zone_shp)[source]

Select load zones within a state

Parameters:
  • state (str) – abbrev. of state

  • state_shp (geopandas.GeoDataFrame) – geo data frame of state shape file

  • zone_shp (geopandas.GeoDataFrame) – geo data frame of zone(BA) shape file

Returns:

(geopandas.GeoDataFrame) – state boundaries and load zones within it

prereise.gather.demanddata.bldg_electrification.helper.zone_shp_overlay(zone_name_shp, zone_shp, pumas_shp)[source]

Select pumas within a zonal load area

Parameters:
  • zone_name_shp (str) – name of the zone in ba_area.shp

  • zone_shp (geopandas.GeoDataFrame) – geo data frame of zone(BA) shape file

  • pumas_shp (geopandas.GeoDataFrame) – geo data frame of pumas shape file

Returns:

(pandas.DataFrame) – puma data of all pumas within the zone, including fraction within the zone

prereise.gather.demanddata.bldg_electrification.load_projection module

prereise.gather.demanddata.bldg_electrification.load_projection.ff_electrify_profiles(weather_years, puma_data, base_scen, new_scen, new_hp_profile)[source]

Calculate hourly electricity loads for a projection scenario from converting fossil fuel heating, dhw and cooking to electric ones

Parameters:
  • weather_years (list) – user defined year(s) of weather profile for load projection

  • puma_data (pandas.DataFrame) – puma data within zone, output of zone_shp_overlay()

  • base_scen (LoadProjectionScenario) – reference scenario instance

  • new_scen (LoadProjectionScenario) – projection scenario instance

  • new_hp_profile (str) – either “elec” or “ff”. Choose either current electric heat pump heating demand profiles or current fossil fuel heating demand that the projected newly electrified load will follow.

:return (pandas.DataFrame) – hourly projection load from converting fossil fuel

consumption to electricity for projection scenarios given weather conditions from selected weather years.

prereise.gather.demanddata.bldg_electrification.load_projection.predict_scenario(zone_name, zone_name_shp, base_scen, new_scens, weather_years, new_hp_profile)[source]

Load projection for one zone in all selected weather years.

Parameters:
  • zone_name (str) – name of load zone used to save profile.

  • zone_name_shp (str) – name of load zone within shapefile.

  • base_scen (LoadProjectionScenario) – reference scenario instance

  • new_scen (LoadProjectionScenario) – projection scenario instance

  • weather_years (list) – user defined year(s) of weather profile for load projection

  • new_hp_profile (str) – either “elec” or “ff”. Choose either current electric heat pump heating demand profiles or current fossil fuel heating demand that the projected newly electrified load will follow.

:return (dict) – hourly projected load breakdowns for all scenarios, keys are

scenario names, values are data frames of load breakdowns.

prereise.gather.demanddata.bldg_electrification.load_projection.scale_energy(base_energy, temp_df, base_scen, new_scen, midperfhp_cop, advperfhp_cop, new_hp_profile)[source]

Project energy consumption for each projection scenarios from the base scenario

Parameters:
  • base_energy (pandas.DataFrame) – dataframe of disaggregated electricity consumptions for all weather years

  • temp_df (pandas.DataFrame) – weather records the given hours

  • base_scen (LoadProjectionScenario) – reference scenario instance

  • new_scen (LoadProjectionScenario) – projection scenario instance

  • midperfhp_cop (pandas.DataFrame) – average performance heat pump COP against DBT with a 0.1 degree C interval

  • advperfhp_cop (pandas.DataFrame) – advanced performance heat pump (90% percentile cold climate heat pump) COP against DBT with a 0.1 degree C interval

  • new_hp_profile (str) – either “elec” or “ff”. Choose either current electric heat pump heating demand profiles or current fossil fuel heating demand that the projected newly electrified load will follow.

:return (pandas.DataFrame) – hourly electricity consumption induced by heat pump

heating, resistance heating, cooling, and baseload for a projection scenario

prereise.gather.demanddata.bldg_electrification.load_projection.temp_to_energy(temp_series, hourly_fits_df, db_wb_fit, base_scen, hp_heat_cop)[source]

Compute baseload, heating, and cooling electricity for a certain hour of year under model base year scenario

Parameters:
  • temp_series (pandas.Series) – data for the given hour.

  • hourly_fits_df (pandas.DataFrame) – hourly and week/weekend breakpoints and coefficients for electricity use equations.

  • db_wb_fit (pandas.DataFrame) – least-square estimators of the linear relationship between WBT and DBT

  • base_scen (LoadProjectionScenario) – reference scenario instance

  • hp_heat_cop (pandas.DataFrame) – heat pump COP against DBT with a 0.1 degree C interval

Returns:

(list) – energy for baseload, heat pump heating, resistance heating, and cooling of certain hour

prereise.gather.demanddata.bldg_electrification.load_projection_scenario module

class prereise.gather.demanddata.bldg_electrification.load_projection_scenario.LoadProjectionScenario(id, input_series, other=None)[source]

Bases: object

Define load projection scenario for a load zone. For a base scenario, read and save building stock inputs. For a projection scenario, some fields are projected from base scenario based on the projection scenario inputs.

Parameters:
  • id (str) – id of scenario, ‘base’ refers to modeled base year scenario

  • input_series (pandas.Series) –

    precomputed information of building stock floor area and energy usages for a base scenario. User defined growth inputs for a projection scenario. This series contains information for a load zone, which are listed as follows:

    1. population

    2. total building floor area by type

    3. primary energy source types and household fraction for space heating, cooling, hot water and cooking

    4. assumed dominate type of heat pump

    5. assumed energy efficiency of cooking and air conditioning.

  • other (LoadProjectionScenario) – the base scenario instance for a projection scenario creation. None if creating a base scenario.

compare_hp_heat_type(other)[source]
:return (bool) – True if the heat pump type for projection scenario is the

same as that of base scenario, otherwise False

floor_area_growth(other)[source]

:return (float) – compound floor area growth

floor_area_growth_type(other, clas)[source]

:return (float) – compound floor area growth by building type

frac_cook_ff2hp(other, clas)[source]

:return (float) – fraction of floor area electrified for cooking

frac_cool_growth(other)[source]

:return (float) – floor area growth ratio that have electric air conditioning

frac_cooling_eff_change(other)[source]
:return (float) – ratio of cooling efficiency improvement compares to base

scenario

frac_dhw_ff2hp(other, clas)[source]

:return (float) – fraction of floor area electrified for dhw

frac_hp_growth(other)[source]
:return (float) – floor area growth ratio that use hp as main heating

appliance

frac_htg_ff2hp(other, clas)[source]

:return (float) – fraction of floor area electrified for heating

frac_resist_growth(other)[source]
:return (float) – floor area growth ratio that use resistance heat as main

heating source

prereise.gather.demanddata.bldg_electrification.puma_data_agg module

prereise.gather.demanddata.bldg_electrification.puma_data_agg.aggregate_puma_df(puma_states, tract_puma_mapping, tract_gbs_area, tract_degday_normals, tract_pop)[source]

Scale census tract data up to puma areas.

Parameters:
  • puma_states (pandas.DataFrame) – mapping of puma to state.

  • tract_puma_mapping (pandas.DataFrame) – tract to puma mapping.

  • tract_gbs_area (pandas.DataFrame) – General Building Stock area for residential, commercial, industrial areas by tract

  • tract_degday_normals (pandas.DataFrame) – heating and cooling degree day normals by tract

  • tract_pop (pandas.DataFrame) – population by tract

Returns:

(pandas.DataFrame) – population; residential, commercial, industrial areas; heating degree days; cooling degree days; residential space heating household fuel fractions.

prereise.gather.demanddata.bldg_electrification.puma_data_agg.puma_timezone_latlong(timezones, pumas)[source]

Assign timezone and lat/long to each puma.

Parameters:
  • timezones (geopandas.DataFrame) – US timezones.

  • pumas (geopandas.DataFrame) – US pumas.

Returns:

(pandas.Series) – timezone for every puma.

Returns:

(pandas.DataFrame) – latitude and longitude for every puma.

prereise.gather.demanddata.bldg_electrification.puma_data_agg.scale_fuel_fractions(hh_fuels, puma_df, year=2019)[source]

Scale census tract data up to puma areas.

Parameters:
  • hh_fuels (pandas.DataFrame) – household fuel type by puma.

  • puma_df (pandas.DataFrame) – output of aggregate_puma_df().

  • year (int/str) – year to use within label when creating columns.

Returns:

(pandas.DataFrame) – fractions of natural gas, fuel oil and kerosone, propane, and electricity used for space heating, hot water, cooking, and other in residential and commercial buildings.

prereise.gather.demanddata.bldg_electrification.puma_hp_estimator module

prereise.gather.demanddata.bldg_electrification.puma_hp_estimator.estimate_puma_hp_penetration(hp_fit_df, hp_fit_df_low_elec, puma_data_metro)[source]

Compute current heat pump penetration for PUMAs, and then scale the values to align with regional inputs from RECS and CBECS surveys. When compute heat pump penetration rate from the regression model, the simpler model with less variance is chosen when the fraction of electrified heating is less than 0.27 (by default) as observed from the relationship between current heat pump penetration rate and the fraction of electrified heating

Parameters:
  • hp_fit_df (pandas.DataFrame) – slope and intercept of heat pump penetration regression model, output of hp_penetration_fit()

  • hp_fit_df_low_elec (pandas.DataFrame) – slope and intercept of heat pump penetration regression model for low electrified locations, output of :py:func: hp_penetration_fit()

  • puma_data_metro (pandas.DataFrame) – puma data within metropolitan areas, output of :py:func: puma_county_shp_overlay()

Returns:

(pandas.DataFrame) hp_puma_df: current heat pump penetration estimations for pumas that has been scaled based on RECS and CBECS surveys. The indices of this dataframe includes all PUMA id’s in the CONUS. The columns include estimates of current heat pump penetration result for residential and commercial building stock

prereise.gather.demanddata.bldg_electrification.puma_hp_estimator.hp_penetration_fit(stats)[source]

Fit current heat pump penetration rate on metropolitan area data

Parameters:

stats (pandas.DataFrame) – metropolitan area data, output of :py:func: metro_data()

Returns:

(tuple) – hp_fit_df: slope and intercept of heat pump penetration regression model, fit_stats: fitting statistics of heat pump penetration regression model; hp_fit_df_low_elec: slope and intercept of a simpler heat pump penetration model fitted on data points with low electrification rate of buildings; fit_stats_low_elec: fitting statistics of a simpler heat pump penetration model fitted on data points with low electrification rate of buildings.

prereise.gather.demanddata.bldg_electrification.puma_hp_estimator.metro_data(puma_data)[source]

Aggregate puma metrics to the population weighted metropolitan area values of AHS survey

Parameters:

puma_data (pandas.DataFrame) – puma data within metropolitan areas, output of :py:func: puma_county_shp_overlay()

:return (pandas.DataFrame) stats – metropolitan area data to be used for heat

pump penetration linear regression model. The row indices includes all metropolitan areas with AHS heat pump data. Columns include data on the fraction of floor area that use electricity for space heating, average natural gas price for year 2019, normal year HDD, and AHS heat pump penetration rate.

prereise.gather.demanddata.bldg_electrification.puma_hp_estimator.puma_county_shp_overlay(pumas_shp, county_shp)[source]

Align all counties that are within survey areas of AHS(American Housing Survey) to PUMAs geographically

Parameters:
  • pumas_shp (geopandas.GeoDataFrame) – geo data frame of pumas shape file

  • county_shp (geopandas.GeoDataFrame) – geo data frame of county shape file

:return (pandas.DataFrame) – puma data of all pumas within the survey areas of

AHS, including fraction within the zone. Row indices are id’s of puma that is covered by AHS survey data. Columns include household heat pump possession rate from AHS, fraction of geographical area each PUMA in each county, and other end-use energy information in “/data/puma_data.csv”

prereise.gather.demanddata.bldg_electrification.weather_data_agg module

prereise.gather.demanddata.bldg_electrification.weather_data_agg.create_era5_pumas(years, tract_puma_mapping, tract_pop, tract_lat_lon, directory, variable='temp')[source]
Create {variable}s_pumas_{state}_{year}.csv or dewpt_pumas_{state}_{year} for all

CONUS states and input year(s)

Parameters:
  • year (iterable) – year(s) for which data files to be produced

  • tract_puma_mapping (pandas.Series) – tract to puma mapping.

  • tract_pop (pandas.Series) – population, indexed by tract.

  • tract_lat_lon (pandas.DataFrame) – data frame, indexed by tract, with columns “state”, “lat”, and “lon”.

  • directory (str) – path to root directory for ERA5 downloads (not including variable name)

  • str – variable to produce temp {Default} – dry bulb temperataure, corresponds to ERA5 variable “2m_temperature” dewpt – dew point temperature, corresponds to ERA5 variable “2m_dewpoint_temperature” pres – surface pressure, corresponds to ERA5 variable “surface_pressure”

Raises:
  • ValueError – if the variable name is invalid.

  • FileNotFoundError – if not all required files are present.

prereise.gather.demanddata.bldg_electrification.weather_data_agg.dark_fractions(puma, puma_data, year)[source]

Compute annual time series of fraction of each hour that is dark for a given puma

Parameters:
  • puma (str) – puma name

  • puma_data (pandas.DataFrame) – puma data for lat, long, and timezone

  • year (int) – year of desired dark fractions

Returns:

(list) – hourly dark fractions for the year

prereise.gather.demanddata.bldg_electrification.weather_data_agg.era5_download(years, directory, variable='temp')[source]

Download ERA5 data

Parameters:
  • year (iterable) – year(s) for which data to be downloaded given as single value or iterable list

  • directory (str) – path to root directory for ERA5 downloads

  • str – variable to be downloaded, chosen from: temp {Default} – dry bulb temperataure, corresponds to ERA5 variable “2m_temperature” dewpt – dew point temperature, corresponds to ERA5 variable “2m_dewpoint_temperature” pres – surface pressure, corresponds to ERA5 variable “surface_pressure”

Raises:
  • ValueError – if the variable name is invalid or if any values in years are outside of the valid range.

  • Exception – if the cdsapi package is not configured properly.

prereise.gather.demanddata.bldg_electrification.weather_data_agg.generate_dark_fracs(year, directory)[source]

Generate puma level hourly time series of darkness fractions for all pumas within a state

Parameters:
  • year (int) – year of desired dark fractions

  • directory (str) – path to local root directory for weather data

Export:

(csv) – statewide hourly dark fractions for every puma

prereise.gather.demanddata.bldg_electrification.weather_data_agg.generate_wetbulb_temps(year, directory)[source]

Generate puma level hourly time series of wetbulb temperatures for all pumas within a state

Parameters:
  • year (int) – year of desired dark fractions

  • directory (str) – path to local root directory for weather data

Export:

(csv) – statewide hourly wetbulb temperatures for every puma

prereise.gather.demanddata.bldg_electrification.weather_data_agg.t_to_twb(temp_values, dwpt_values, press_values)[source]

Compute wetbulb temperature from drybulb, dewpoint, and pressure

Parameters:
  • temp_values (list) – drybulb temperatures, C

  • dwpt_values (list) – dewpoint temperatures, C

  • press_values (list) – pressures, Pa

Returns:

(list) – wetbulb temperatures

prereise.gather.demanddata.bldg_electrification.zone_profile_generator module

prereise.gather.demanddata.bldg_electrification.zone_profile_generator.bkpt_scale(df, num_points, bkpt, heat_cool)[source]

Adjust heating or cooling breakpoint to ensure there are enough data points to fit.

Parameters:
  • df (pandas.DataFrame) – load and temperature for a certain hour of the day, wk or wknd.

  • num_points (int) – minimum number of points required in df to fit.

  • bkpt (float) – starting temperature breakpoint value.

  • heat_cool (str) – dictates if breakpoint is shifted warmer for heating or colder for cooling

Returns:

(pandas.DataFrame) dft – adjusted dataframe filtered by new breakpoint. Original input df if size of initial df >= num_points

Returns:

(float) bkpt – updated breakpoint. Original breakpoint if size of initial df >= num_points

prereise.gather.demanddata.bldg_electrification.zone_profile_generator.hourly_load_fit(load_temp_df, plot_boolean)[source]

Fit hourly heating, cooling, and baseload functions to load data

Parameters:
  • load_temp_df (pandas.DataFrame) – hourly load and temperature data

  • plot_boolean (boolean) – whether or not create profile plots.

Returns:

(pandas.DataFrame) hourly_fits_df – hourly and week/weekend breakpoints and coefficients for electricity use equations

Returns:

(float) s_wb_db, i_wb_db – slope and intercept of fit between dry and wet bulb temperatures of zone

prereise.gather.demanddata.bldg_electrification.zone_profile_generator.main(zone_name, zone_name_shp, base_year, year, plot_boolean=False)[source]

Run profile generator for one zone for one year.

Parameters:
  • zone_name (str) – name of load zone used to save profile.

  • zone_name_shp (str) – name of load zone within shapefile.

  • base_year (int) – data fitting year.

  • year (int) – profile year to calculate.

  • plot_boolean (boolean) – whether or not create profile plots.

prereise.gather.demanddata.bldg_electrification.zone_profile_generator.plot_profile(profile, actual, plot_boolean)[source]

Plot profile vs. actual load

Parameters:
  • profile (pandas.Series) – total profile hourly load

  • actual (pandas.Series) – zonal hourly load data

  • plot_boolean (boolean) – whether or not create profile plots.

Returns:

(plot)

prereise.gather.demanddata.bldg_electrification.zone_profile_generator.temp_to_energy(temp_series, hourly_fits_df, db_wb_fit)[source]

Compute baseload, heating, and cooling electricity for a certain hour of year

Parameters:
  • load_temp_series (pandas.Series) – data for the given hour.

  • hourly_fits_df (pandas.DataFrame) – hourly and week/weekend breakpoints and coefficients for electricity use equations.

  • s_wb_db (float) – slope of fit between dry and wet bulb temperatures of zone.

  • i_wb_db (float) – intercept of fit between dry and wet bulb temperatures of zone.

Returns:

(list) – [baseload, heating, cooling]

prereise.gather.demanddata.bldg_electrification.zone_profile_generator.zonal_data(puma_data, hours_utc, year)[source]

Aggregate puma metrics to population weighted hourly zonal values

Parameters:
  • puma_data (pandas.DataFrame) – puma data within zone, output of zone_shp_overlay()

  • hours_utc (pandas.DatetimeIndex) – index of UTC hours.

  • year (int) – year of temperature data

Returns:

(pandas.DataFrame) temp_df – hourly zonal values of temperature, wetbulb temperature, and darkness fraction

Module contents