tobler.dasymetric.masked_area_interpolate

tobler.dasymetric.masked_area_interpolate(source_df, target_df, raster, pixel_values, extensive_variables=None, intensive_variables=None, categorical_variables=None, allocate_total=True, nodata=255, n_jobs=-1, fill_nan=0.0)[source]

Interpolate data between two polygonal datasets using an auxiliary raster to mask out uninhabited land.

Parameters:
source_df : geopandas.GeoDataFrame

source data to be converted to another geometric representation.

target_df : geopandas.GeoDataFrame

target geometries that will form the new representation of the input data

raster : str

path to raster file that contains ancillary data

pixel_values : list of ints

list of pixel values that should be considered part of the mask. For example if using data from NLCD Land Cover Database <https://www.mrlc.gov/data>, a common input might be [21,22,23,24], which match the “developed” land types in that dataset

extensive_variables : list

Columns of the input dataframe containing extensive variables to interpolate

intensive_variables : list

Columns of the input dataframe containing intensive variables to interpolate

categorical_variables : list

[Optional. Default=None] Columns in dataframes for categorical variables`

allocate_total : bool

whether to allocate the total from the source geometries (the default is True).

nodata : int

value in raster that indicates null or missing values. Default is 255

n_jobs : int

[Optional. Default=-1] Number of processes to run in parallel to generate the area allocation. If -1, this is set to the number of CPUs available.

fill_nan : numeric, str, or None

[Optional. Default=0.0] Value to replace NaN values in the source variables. If None, NaN values are not replaced and will propagate through the interpolation. If a string is passed, it should be one of ‘mean’, ‘median’, ‘max’, or ‘min’, and NaN values will be replaced with the corresponding aggregate value from the source variable.

Returns:

GeoDataFrame with geometries matching the target_df and extensive and intensive variables as the columns

Return type:

geopandas.GeoDataFrame