@@ -517,9 +517,8 @@ def stats(
517517 stats() works with Dask with NumPy backed DataArray
518518 >>> import dask.array as da
519519 >>> import dask.array as da
520- >>> values_dask = xr.DataArray(da.from_array(values, chunks=(3, 3)))
521- >>> zones_dask = xr.DataArray(da.from_array(zones, chunks=(3, 3)))
522-
520+ >>> values_dask = xr.DataArray(da.from_array(values_data, chunks=(3, 3)))
521+ >>> zones_dask = xr.DataArray(da.from_array(zones_data, chunks=(3, 3)))
523522 >>> # Calculate Stats with dask backed xarray DataArrays
524523 >>> dask_stats_df = stats(zones=zones_dask, values=values_dask)
525524 >>> print(type(dask_stats_df))
@@ -530,20 +529,6 @@ def stats(
530529 1 10 27.0 49 5 675 14.21267 202.0 25
531530 2 20 72.0 94 50 1800 14.21267 202.0 25
532531 3 30 77.0 99 55 1925 14.21267 202.0 25
533-
534- >>> # Custom Stats with dask backed xarray DataArrays
535- >>> dask_custom_stats ={'double_sum': lambda val: val.sum()*2}
536- >>> dask_custom_stats_df = stats(
537- >>> zones=zones_dask, values=values_dask, stats_funcs=custom_stats
538- >>> )
539- >>> print(type(dask_custom_stats_df))
540- <class 'dask.dataframe.core.DataFrame'>
541- >>> print(dask_custom_stats_df.compute())
542- zone double_sum
543- 0 0 1100
544- 1 10 1350
545- 2 20 3600
546- 3 30 3850
547532 """
548533
549534 validate_arrays (zones , values )
@@ -968,10 +953,10 @@ def crosstab(
968953 .. sourcecode:: python
969954
970955 >>> import dask.array as da
971- >>> values_dask = xr.DataArray(da.from_array(values , chunks=(3, 3)))
972- >>> zones_dask = xr.DataArray(da.from_array(zones , chunks=(3, 3)))
973- >>> df = crosstab(zones=zones_dask, values=values_dask)
974- >>> print(df )
956+ >>> values_dask = xr.DataArray(da.from_array(values_data , chunks=(3, 3)))
957+ >>> zones_dask = xr.DataArray(da.from_array(zones_data , chunks=(3, 3)))
958+ >>> dask_df = crosstab(zones=zones_dask, values=values_dask)
959+ >>> print(dask_df )
975960 Dask DataFrame Structure:
976961 zone 0.0 10.0 20.0 30.0 40.0 50.0
977962 npartitions=5
@@ -981,7 +966,7 @@ def crosstab(
981966 4 ... ... ... ... ... ... ...
982967 5 ... ... ... ... ... ... ...
983968 Dask Name: astype, 1186 tasks
984- >>> print(dask_df.compute)
969+ >>> print(dask_df.compute() )
985970 zone 0.0 10.0 20.0 30.0 40.0 50.0
986971 0 0 1 0 0 0 0 0
987972 1 1 3 0 0 0 0 0
@@ -1120,6 +1105,7 @@ def apply(
11201105
11211106 >>> import numpy as np
11221107 >>> import xarray as xr
1108+ >>> from xrspatial.zonal import apply
11231109 >>> zones_val = np.array([
11241110 [1, 1, 0, 2],
11251111 [0, 2, 1, 2]])
@@ -1132,7 +1118,7 @@ def apply(
11321118 >>> apply(zones, agg, func)
11331119 >>> agg
11341120 array([[0, 0, 5, 0],
1135- [3, 0 , 0, 0]])
1121+ [3, np.nan , 0, 0]])
11361122 """
11371123 if not isinstance (zones , xr .DataArray ):
11381124 raise TypeError ("zones must be instance of DataArray" )
@@ -1276,6 +1262,7 @@ def suggest_zonal_canvas(
12761262 >>> from spatialpandas import GeoDataFrame
12771263 >>> import geopandas as gpd
12781264 >>> import datashader as ds
1265+ >>> from xrspatial.zonal import suggest_zonal_canvas
12791266
12801267 >>> df = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))
12811268 >>> df = df.to_crs("EPSG:3857")
@@ -1298,12 +1285,16 @@ def suggest_zonal_canvas(
12981285 crs='Mercator',
12991286 min_pixels=min_pixels,
13001287 )
1288+ >>> height, width
1289+ (1537, 2376)
13011290 >>> cvs = ds.Canvas(x_range=x_range, y_range=y_range,
13021291 >>> plot_height=height, plot_width=width)
13031292 >>> spatial_df = GeoDataFrame(df, geometry='geometry')
13041293 >>> agg = cvs.polygons(spatial_df, 'geometry', agg=ds.max('id'))
13051294 >>> min_poly_id = df.area.argmin()
13061295 >>> actual_min_pixels = len(np.where(agg.data==min_poly_id)[0])
1296+ >>> actual_min_pixels
1297+ 22
13071298 """
13081299 full_xrange , full_yrange = get_full_extent (crs )
13091300 xmin , xmax = full_xrange
0 commit comments