onstove.Biogas#

class onstove.Biogas(name: str | None = None, carbon_intensity: float | None = None, co2_intensity: float = 0, ch4_intensity: float = 0.029, n2o_intensity: float = 0.0006, co_intensity: float = 0, bc_intensity: float = 0.0043, oc_intensity: float = 0.0091, energy_content: float = 22.8, tech_life: int = 20, inv_cost: float = 550, fuel_cost: float = 0, time_of_cooking: float = 2, manure_feed_time: float = 0.5, om_cost: float = 3.7, efficiency: float = 0.4, pm25: float = 43, digester_eff: float = 0.4, friction_path: str | None = None)[source]#

Biogas technology class used to model biogas fueled stoves. This class inherits the standard Technology class and is used to model stoves using biogas as fuel. Biogas stoves are assumed to not be available in urban settlements as the collection of manure is assumed to be limited. If the fuel is assumed to be purchased changes can be made to the function called available_biogas. Biogas is also assumed to be restricted based on temperature (an average yearly temperature below 10 degrees Celsius is assumed to lead to heavy drops of efficiency [1]). Biogas production is also assumed to be a very water intensive process [2], hence areas experiencing water stress are assumed restricted as well.

Parameters:
name: str, optional.

Name of the technology to model.

carbon_intensity: float, optional

The CO2 equivalent emissions in kg/GJ of burned fuel. If this attribute is used, then none of the gas-specific intensities will be used (e.g. ch4_intensity).

co2_intensity: float, default 0

The CO2 emissions in kg/GJ of burned fuel.

ch4_intensity: float, default 0.029

The CH4 emissions in kg/GJ of burned fuel.

n2o_intensity: float, default 0.0006

The N2O emissions in kg/GJ of burned fuel.

co_intensity: float, default 0

The CO emissions in kg/GJ of burned fuel.

bc_intensity: float, default 0.0043

The black carbon emissions in kg/GJ of burned fuel.

oc_intensity: float, default 0.0091

The organic carbon emissions in kg/GJ of burned fuel.

energy_content: float, default 22.8

Energy content of the fuel in MJ/m3.

tech_life: int, default 20

Stove life in year.

inv_cost: float, default 550

Investment cost of the stove in USD.

fuel_cost: float, default 0

Fuel cost in USD/kg if any.

time_of_cooking: float, default 2

Daily average time spent for cooking with this stove in hours.

manure_feed_time: float, default 3

Time spent collecting and feeding manure to the digester (excluding travel time) in hours.

om_cost: float, default 3.7

Operation and maintenance cost in USD/year.

efficiency: float, default 0.4

Efficiency of the stove.

pm25: float, default 43

Particulate Matter emissions (PM25) in mg/kg of fuel.

digester_eff: float, default 0.4

Efficiency of the digestor.

friction_path: str, optional

Path to the friction raster file describing the time needed (in minutes) to travel one meter within each cell.

References

[1]

Lohani, S. P., Dhungana, B., Horn, H. & Khatiwada, D. Small-scale biogas technology and clean cooking fuel: Assessing the potential and links with SDGs in low-income countries – A case study of Nepal. Sustainable Energy Technologies and Assessments 46, 101301 (2021).

[2]

Bansal, V., Tumwesige, V. & Smith, J. U. Water for small-scale biogas digesters in sub-Saharan Africa. GCB Bioenergy 9, 339–357 (2017).

Methods

adjusted_pm25()

Adjusts the PM25 value of each stove based on the adjusment factor.

available_biogas(model)

Calculates the biogas production potential in liters per day.

carb(model)

Checks if carbon_emission is given in the socio-economic specification file.

carbon_emissions(model)

Calculates the reduced emissions and the costs avoided by reducing these emissions.

discount_factor(specs)

Calculates and returns the discount factor used for benefits and costs in the net-benefit equation.

discount_fuel_cost(model[, relative])

Calls discount_factor function and calculates discounted fuel costs.

discounted_inv(model[, relative])

Calls discount_factor function and calculates discounted investment cost.

discounted_om(model)

Calls discount_factor function and calculates discounted operation and maintenance cost for each stove.

get_carbon_intensity(model)

Calculates the carbon intensity of the associated stove.

get_collection_time(model)

Calculates the daily time of collection based on friction (hour/meter), the available biogas energy from each cell (MJ/yr/meter, 1000000 represents meters per km2) and the required energy per household (MJ/yr).

health_parameters(model)

Calculates the population attributable fraction for ALRI, COPD, IHD, lung cancer or stroke for urban and rural settlements of the area of interest.

morbidity(model)

Calculates the morbidity across the study area per stove by calling the mort_morb function.

mort_morb(model[, parameter, dr])

Calculates mortality or morbidity rate per fuel.

mortality(model)

Calculates the mortality across the study area per stove by calling the mort_morb function.

net_benefit(model[, w_health, w_spillovers, ...])

This method expands Technology.net_benefit() by taking into account biogas availability in the calculations.

normalize(column[, inverse])

Uses the MinMax method to normalize the data from a column of the gdf GeoDataFrame.

paf(rr, sfu)

Calculates the Population Attributable Fraction for (PAF) ALRI, COPD, IHD, lung cancer or stroke based on the percentage of population using non-clean stoves and the relative risk.

read_friction(model, friction_path)

Reads a friction layer in min per meter (walking time per meter) and returns a pandas series with the values for each populated grid cell in hours per meter

recalibrate_livestock(model, buffaloes, ...)

Recalibrates the livestock maps and adds them to the main dataframe.

relative_risk()

Calculates the relative risk of contracting ALRI, COPD, IHD, lung cancer or stroke based on the adjusted

required_energy(model)

Calculates the annual energy needed for cooking in MJ/yr.

required_energy_hh(model)

Determines the required annual energy needed for cooking taking into account the stove efficiency.

salvage(model)

Calls discount_factor function and calculates discounted salvage cost for each stove assuming a straight-line depreciation of the stove value.

time_saved(model)

Calculates time saved per year by adopting a new stove.

total_costs()

Calculates total costs (fuel, investment, operation and maintenance as well as salvage costs).

total_time(model)

This method expands Technology.total_time() by adding the biogas collection time