Hydropower Package

Model Entry Point

natcap.invest.hydropower.hydropower_water_yield.execute(args)

Annual Water Yield: Reservoir Hydropower Production.

Executes the hydropower/water_yield model

Parameters:
  • args['workspace_dir'] (string) – a path to the directory that will write output and other temporary files during calculation. (required)
  • args['lulc_path'] (string) – a path to a land use/land cover raster whose LULC indexes correspond to indexes in the biophysical table input. Used for determining soil retention and other biophysical properties of the landscape. (required)
  • args['depth_to_root_rest_layer_path'] (string) – a path to an input raster describing the depth of “good” soil before reaching this restrictive layer (required)
  • args['precipitation_path'] (string) – a path to an input raster describing the average annual precipitation value for each cell (mm) (required)
  • args['pawc_path'] (string) – a path to an input raster describing the plant available water content value for each cell. Plant Available Water Content fraction (PAWC) is the fraction of water that can be stored in the soil profile that is available for plants’ use. PAWC is a fraction from 0 to 1 (required)
  • args['eto_path'] (string) – a path to an input raster describing the annual average evapotranspiration value for each cell. Potential evapotranspiration is the potential loss of water from soil by both evaporation from the soil and transpiration by healthy Alfalfa (or grass) if sufficient water is available (mm) (required)
  • args['watersheds_path'] (string) – a path to an input shapefile of the watersheds of interest as polygons. (required)
  • args['sub_watersheds_path'] (string) – a path to an input shapefile of the subwatersheds of interest that are contained in the args['watersheds_path'] shape provided as input. (optional)
  • args['biophysical_table_path'] (string) – a path to an input CSV table of land use/land cover classes, containing data on biophysical coefficients such as root_depth (mm) and Kc, which are required. A column with header LULC_veg is also required which should have values of 1 or 0, 1 indicating a land cover type of vegetation, a 0 indicating non vegetation or wetland, water. NOTE: these data are attributes of each LULC class rather than attributes of individual cells in the raster map (required)
  • args['seasonality_constant'] (float) – floating point value between 1 and 30 corresponding to the seasonal distribution of precipitation (required)
  • args['results_suffix'] (string) – a string that will be concatenated onto the end of file names (optional)
  • args['demand_table_path'] (string) – (optional) if a non-empty string, a path to an input CSV table of LULC classes, showing consumptive water use for each landuse / land-cover type (cubic meters per year) to calculate water scarcity.
  • args['valuation_table_path'] (string) –

    (optional) if a non-empty string, a path to an input CSV table of hydropower stations with the following fields to calculate valuation:

    (‘ws_id’, ‘time_span’, ‘discount’, ‘efficiency’, ‘fraction’, ‘cost’, ‘height’, ‘kw_price’)

    Required if calculate_valuation is True.

  • args['n_workers'] (int) – (optional) The number of worker processes to use for processing this model. If omitted, computation will take place in the current process.
Returns:

None

Hydropower Water Yield

InVEST Hydropower Water Yield model.

natcap.invest.hydropower.hydropower_water_yield.aet_op(fractp, precip, precip_nodata, output_nodata)

Compute actual evapotranspiration values.

Parameters:
  • fractp (numpy.ndarray float) – fractp raster values.
  • precip (numpy.ndarray) – precipitation raster values (mm).
  • precip_nodata (float) – nodata value from the precip raster.
  • output_nodata (float) – nodata value assigned to output of raster_calculator.
Returns:

numpy.ndarray of actual evapotranspiration values (mm).

natcap.invest.hydropower.hydropower_water_yield.compute_rsupply_volume(watershed_results_vector_path)

Calculate the total realized water supply volume.

And the mean realized water supply volume per hectare for the given sheds. Output units in cubic meters and cubic meters per hectare respectively.

Parameters:watershed_results_vector_path (string) – a path to a vector that contains fields ‘wyield_vol’ and ‘wyield_mn’.
Returns:None.
natcap.invest.hydropower.hydropower_water_yield.compute_water_yield_volume(watershed_results_vector_path)

Calculate the water yield volume per sub-watershed or watershed.

Results are added to a ‘wyield_vol’ field in watershed_results_vector_path. Units are cubic meters.

Parameters:watershed_results_vector_path (str) – Path to a sub-watershed or watershed vector. This vector’s features should have a ‘wyield_mn’ attribute.
Returns:None.
natcap.invest.hydropower.hydropower_water_yield.compute_watershed_valuation(watershed_results_vector_path, val_dict)

Compute net present value and energy for the watersheds.

Parameters:
  • watershed_results_vector_path (string) – Path to an OGR shapefile for the watershed results. Where the results will be added.
  • val_dict (dict) – a python dictionary that has all the valuation parameters for each watershed.
Returns:

None.

natcap.invest.hydropower.hydropower_water_yield.convert_vector_to_csv(base_vector_path, target_csv_path)

Create a CSV with all the fields present in vector attribute table.

Parameters:
  • base_vector_path (string) – Path to the watershed shapefile in the output workspace.
  • target_csv_path (string) – Path to a CSV to create in the output workspace.
Returns:

None

natcap.invest.hydropower.hydropower_water_yield.create_vector_output(base_vector_path, target_vector_path, ws_id_name, stats_path_list, valuation_params)

Create the main vector outputs of this model.

Join results of zonal stats to copies of the watershed shapefiles. Also do optional scarcity and valuation calculations.

Parameters:
  • base_vector_path (string) – Path to a watershed shapefile provided in the args dictionary.
  • target_vector_path (string) – Path where base_vector_path will be copied to in the output workspace.
  • ws_id_name (string) – Either ‘ws_id’ or ‘subws_id’, which are required names of a unique ID field in the watershed and subwatershed shapefiles, respectively. Used to determine if the polygons represent watersheds or subwatersheds.
  • stats_path_list (list) – List of file paths to pickles storing the zonal stats results.
  • valuation_params (dict) – The dictionary built from args[‘valuation_table_path’]. Or None if valuation table was not provided.
Returns:

None

natcap.invest.hydropower.hydropower_water_yield.execute(args)

Annual Water Yield: Reservoir Hydropower Production.

Executes the hydropower/water_yield model

Parameters:
  • args['workspace_dir'] (string) – a path to the directory that will write output and other temporary files during calculation. (required)
  • args['lulc_path'] (string) – a path to a land use/land cover raster whose LULC indexes correspond to indexes in the biophysical table input. Used for determining soil retention and other biophysical properties of the landscape. (required)
  • args['depth_to_root_rest_layer_path'] (string) – a path to an input raster describing the depth of “good” soil before reaching this restrictive layer (required)
  • args['precipitation_path'] (string) – a path to an input raster describing the average annual precipitation value for each cell (mm) (required)
  • args['pawc_path'] (string) – a path to an input raster describing the plant available water content value for each cell. Plant Available Water Content fraction (PAWC) is the fraction of water that can be stored in the soil profile that is available for plants’ use. PAWC is a fraction from 0 to 1 (required)
  • args['eto_path'] (string) – a path to an input raster describing the annual average evapotranspiration value for each cell. Potential evapotranspiration is the potential loss of water from soil by both evaporation from the soil and transpiration by healthy Alfalfa (or grass) if sufficient water is available (mm) (required)
  • args['watersheds_path'] (string) – a path to an input shapefile of the watersheds of interest as polygons. (required)
  • args['sub_watersheds_path'] (string) – a path to an input shapefile of the subwatersheds of interest that are contained in the args['watersheds_path'] shape provided as input. (optional)
  • args['biophysical_table_path'] (string) – a path to an input CSV table of land use/land cover classes, containing data on biophysical coefficients such as root_depth (mm) and Kc, which are required. A column with header LULC_veg is also required which should have values of 1 or 0, 1 indicating a land cover type of vegetation, a 0 indicating non vegetation or wetland, water. NOTE: these data are attributes of each LULC class rather than attributes of individual cells in the raster map (required)
  • args['seasonality_constant'] (float) – floating point value between 1 and 30 corresponding to the seasonal distribution of precipitation (required)
  • args['results_suffix'] (string) – a string that will be concatenated onto the end of file names (optional)
  • args['demand_table_path'] (string) – (optional) if a non-empty string, a path to an input CSV table of LULC classes, showing consumptive water use for each landuse / land-cover type (cubic meters per year) to calculate water scarcity.
  • args['valuation_table_path'] (string) –

    (optional) if a non-empty string, a path to an input CSV table of hydropower stations with the following fields to calculate valuation:

    (‘ws_id’, ‘time_span’, ‘discount’, ‘efficiency’, ‘fraction’, ‘cost’, ‘height’, ‘kw_price’)

    Required if calculate_valuation is True.

  • args['n_workers'] (int) – (optional) The number of worker processes to use for processing this model. If omitted, computation will take place in the current process.
Returns:

None

natcap.invest.hydropower.hydropower_water_yield.fractp_op(Kc, eto, precip, root, soil, pawc, veg, nodata_dict, seasonality_constant)

Calculate actual evapotranspiration fraction of precipitation.

Parameters:
  • Kc (numpy.ndarray) – Kc (plant evapotranspiration coefficient) raster values
  • eto (numpy.ndarray) – potential evapotranspiration raster values (mm)
  • precip (numpy.ndarray) – precipitation raster values (mm)
  • root (numpy.ndarray) – root depth (maximum root depth for vegetated land use classes) raster values (mm)
  • soil (numpy.ndarray) – depth to root restricted layer raster values (mm)
  • pawc (numpy.ndarray) – plant available water content raster values
  • veg (numpy.ndarray) – 1 or 0 where 1 depicts the land type as vegetation and 0 depicts the land type as non vegetation (wetlands, urban, water, etc…). If 1 use regular AET equation if 0 use: AET = Kc * ETo
  • nodata_dict (dict) – stores nodata values keyed by raster names
  • seasonality_constant (float) – floating point value between 1 and 30 corresponding to the seasonal distribution of precipitation.
Returns:

numpy.ndarray (float) of actual evapotranspiration as fraction

of precipitation.

natcap.invest.hydropower.hydropower_water_yield.pet_op(eto_pix, Kc_pix, eto_nodata, output_nodata)

Calculate the plant potential evapotranspiration.

Parameters:
  • eto_pix (numpy.ndarray) – a numpy array of ETo
  • Kc_pix (numpy.ndarray) – a numpy array of Kc coefficient
  • precip_nodata (float) – nodata value from the precip raster
  • output_nodata (float) – nodata value assigned to output of raster_calculator
Returns:

numpy.ndarray of potential evapotranspiration (mm)

natcap.invest.hydropower.hydropower_water_yield.wyield_op(fractp, precip, precip_nodata, output_nodata)

Calculate water yield.

Parameters:
  • fractp (numpy.ndarray float) – fractp raster values.
  • precip (numpy.ndarray) – precipitation raster values (mm).
  • precip_nodata (float) – nodata value from the precip raster.
  • output_nodata (float) – nodata value assigned to output of raster_calculator.
Returns:

numpy.ndarray of water yield value (mm).

natcap.invest.hydropower.hydropower_water_yield.zonal_stats_tofile(base_vector_path, raster_path, target_stats_pickle)

Calculate zonal statistics for watersheds and write results to a file.

Parameters:
  • base_vector_path (string) – Path to the watershed shapefile in the output workspace.
  • raster_path (string) – Path to raster to aggregate.
  • target_stats_pickle (string) – Path to pickle file to store dictionary returned by zonal stats.
Returns:

None

Module contents