generate vector zonal stat features for area data
Given an aoi (simple_aoi
) and geodataframe containing sample data (simple_data
)
simple_aoi
simple_data
ax = plt.axes()
ax = simple_data.plot(
ax=ax, color=["orange", "brown", "purple"], edgecolor="yellow", alpha=0.4
)
ax = simple_aoi.plot(
ax=ax, facecolor="none", edgecolor=["r", "g", "b", "orange", "purple"]
)
The red,green,blue, orange and purple outlines are the 5 regions of interest (aoi) while the orange,brown, purple areas are the data areas.
empty_aoi_results = create_area_zonal_stats(simple_aoi, simple_data)
empty_aoi_results
%%time
simple_aoi_results = create_area_zonal_stats(
simple_aoi,
simple_data,
[
dict(func="count", output="sample_count"),
dict(func=["sum", "count"], column="population"),
dict(func=["mean", "max", "min", "std"], column="internet_speed"),
],
)
simple_aoi_results
simple_aoi_results.population_sum.sum(axis=None)
%%time
corrected_aoi_results = create_area_zonal_stats(
simple_aoi,
simple_data,
[
dict(func=["sum", "count"], column="population"),
dict(
func=["mean", "imputed_mean", "raw_max", "raw_min", "raw_std"],
column="internet_speed",
output=[
"internet_speed_mean",
"internet_speed_imputed_mean",
"internet_speed_max",
"internet_speed_min",
"internet_speed_std",
],
),
],
fix_min=False,
)
corrected_aoi_results
%%time
aois_no_nas = create_area_zonal_stats(
simple_aoi,
simple_data,
[
dict(func=["sum", "count"], column="population", fillna=[True, True]),
dict(
func=["mean", "imputed_mean", "raw_max", "raw_min", "raw_std"],
column="internet_speed",
output=[
"internet_speed_mean",
"internet_speed_imputed_mean",
"internet_speed_max",
"internet_speed_min",
"internet_speed_std",
],
fillna=[True, True, True, True, True],
),
],
fix_min=False,
)
aois_no_nas