Skip to content

Commit 60276ab

Browse files
authored
Name dask tasks for remaining xrspatial tool modules (#3256) (#3326)
1 parent 53c35a7 commit 60276ab

53 files changed

Lines changed: 545 additions & 125 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

xrspatial/classify.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ class cupy(object):
2626

2727
from xrspatial.utils import (
2828
ArrayTypeFunctionMapping,
29+
_dask_task_name_kwargs,
2930
_validate_raster,
3031
_validate_scalar,
3132
cuda_args,
@@ -74,7 +75,7 @@ def _run_numpy_binary(data, values):
7475

7576
def _run_dask_numpy_binary(data, values):
7677
_func = partial(_run_numpy_binary, values=values)
77-
out = data.map_blocks(_func)
78+
out = data.map_blocks(_func, **_dask_task_name_kwargs('xrspatial.binary'))
7879
return out
7980

8081

@@ -104,7 +105,8 @@ def _run_cupy_binary(data, values):
104105

105106

106107
def _run_dask_cupy_binary(data, values_cupy):
107-
out = data.map_blocks(lambda da: _run_cupy_binary(da, values_cupy), meta=cupy.array(()))
108+
out = data.map_blocks(lambda da: _run_cupy_binary(da, values_cupy), meta=cupy.array(()),
109+
**_dask_task_name_kwargs('xrspatial.binary'))
108110
return out
109111

110112

@@ -224,7 +226,7 @@ def _run_dask_numpy_bin(data, bins, new_values):
224226
bins=bins,
225227
new_values=new_values)
226228

227-
out = data.map_blocks(_func)
229+
out = data.map_blocks(_func, **_dask_task_name_kwargs('xrspatial.reclassify'))
228230
return out
229231

230232

@@ -281,7 +283,8 @@ def _run_cupy_bin(data, bins, new_values):
281283
def _run_dask_cupy_bin(data, bins_cupy, new_values_cupy):
282284
out = data.map_blocks(lambda da:
283285
_run_cupy_bin(da, bins_cupy, new_values_cupy),
284-
meta=cupy.array(()))
286+
meta=cupy.array(()),
287+
**_dask_task_name_kwargs('xrspatial.reclassify'))
285288
return out
286289

287290

xrspatial/cost_distance.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ class cupy: # type: ignore[no-redef]
4949
ndarray = False
5050

5151
from xrspatial.utils import (
52+
_dask_task_name_kwargs,
5253
_validate_raster,
5354
cuda_args, get_dataarray_resolution, ngjit,
5455
has_cuda_and_cupy, is_cupy_array, is_dask_cupy,
@@ -506,6 +507,7 @@ def _chunk_func(source_block, friction_block):
506507
boundary=np.nan,
507508
dtype=np.float32,
508509
meta=cp.array((), dtype=cp.float32),
510+
**_dask_task_name_kwargs('xrspatial.cost_distance'),
509511
)
510512

511513
# Unbounded or padding too large: convert to dask+numpy, use CPU path
@@ -1187,6 +1189,7 @@ def _cost_distance_dask(source_da, friction_da, cellsize_x, cellsize_y,
11871189
boundary=np.nan,
11881190
dtype=np.float32,
11891191
meta=np.array((), dtype=np.float32),
1192+
**_dask_task_name_kwargs('xrspatial.cost_distance'),
11901193
)
11911194
return out
11921195

xrspatial/dasymetric.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ class cupy:
5252

5353
from xrspatial.utils import (
5454
ArrayTypeFunctionMapping,
55+
_dask_task_name_kwargs,
5556
has_cuda_and_cupy,
5657
has_dask_array,
5758
is_cupy_array,
@@ -293,6 +294,7 @@ def _disaggregate_dask_numpy(zones_da, weight_da, values_dict, method,
293294
method=method,
294295
nodata_zone=nodata_zone,
295296
dtype=np.float64,
297+
**_dask_task_name_kwargs('xrspatial.disaggregate'),
296298
)
297299
return result
298300

xrspatial/diffusion.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ class cupy:
3333
from xrspatial.utils import (
3434
ArrayTypeFunctionMapping,
3535
_boundary_to_dask,
36+
_dask_task_name_kwargs,
3637
_pad_array,
3738
_validate_boundary,
3839
_validate_raster,
@@ -267,6 +268,7 @@ def _diffuse_dask_numpy(data, alpha, steps, dt_over_dx2, boundary):
267268
depth=(1, 1),
268269
boundary=_boundary_to_dask(boundary),
269270
meta=np.array(()),
271+
**_dask_task_name_kwargs('xrspatial.diffuse'),
270272
)
271273
else:
272274
# Pass alpha as a second dask argument to map_overlap
@@ -278,6 +280,7 @@ def _diffuse_dask_numpy(data, alpha, steps, dt_over_dx2, boundary):
278280
meta=np.array(()),
279281
steps=1,
280282
dt_over_dx2=dt_over_dx2,
283+
**_dask_task_name_kwargs('xrspatial.diffuse'),
281284
)
282285
return u
283286

@@ -318,6 +321,7 @@ def _diffuse_dask_cupy(data, alpha, steps, dt_over_dx2, boundary):
318321
depth=(1, 1),
319322
boundary=_boundary_to_dask(boundary, is_cupy=True),
320323
meta=cp.array(()),
324+
**_dask_task_name_kwargs('xrspatial.diffuse'),
321325
)
322326
else:
323327
u = da.map_overlap(
@@ -327,6 +331,7 @@ def _diffuse_dask_cupy(data, alpha, steps, dt_over_dx2, boundary):
327331
boundary=_boundary_to_dask(boundary, is_cupy=True),
328332
meta=cp.array(()),
329333
dt_over_dx2=dt_over_dx2,
334+
**_dask_task_name_kwargs('xrspatial.diffuse'),
330335
)
331336
return u
332337

xrspatial/emerging_hotspots.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
)
3131
from xrspatial.utils import (
3232
ArrayTypeFunctionMapping,
33+
_dask_task_name_kwargs,
3334
_validate_boundary,
3435
ngjit,
3536
not_implemented_func,
@@ -608,6 +609,7 @@ def _emerging_hotspots_dask_numpy(raster, kernel, boundary='nan'):
608609
gi_zscore,
609610
dtype=np.int8,
610611
meta=np.array((), dtype=np.int8),
612+
**_dask_task_name_kwargs('xrspatial.emerging_hotspots.gi_bin'),
611613
)
612614

613615
# Pass 3: Mann-Kendall + classification via map_blocks
@@ -620,6 +622,7 @@ def _emerging_hotspots_dask_numpy(raster, kernel, boundary='nan'):
620622
drop_axis=0,
621623
new_axis=0,
622624
meta=np.array((), dtype=np.float32),
625+
**_dask_task_name_kwargs('xrspatial.emerging_hotspots.mk_classify'),
623626
)
624627

625628
return gi_zscore, gi_bin, mk_result
@@ -690,6 +693,7 @@ def _emerging_hotspots_dask_cupy(raster, kernel, boundary='nan'):
690693
gi_zscore,
691694
dtype=np.int8,
692695
meta=cupy.array((), dtype=cupy.int8),
696+
**_dask_task_name_kwargs('xrspatial.emerging_hotspots.gi_bin'),
693697
)
694698

695699
# Pass 3: Mann-Kendall + classification via map_blocks
@@ -701,6 +705,7 @@ def _emerging_hotspots_dask_cupy(raster, kernel, boundary='nan'):
701705
drop_axis=0,
702706
new_axis=0,
703707
meta=cupy.array((), dtype=cupy.float32),
708+
**_dask_task_name_kwargs('xrspatial.emerging_hotspots.mk_classify'),
704709
)
705710

706711
return gi_zscore, gi_bin, mk_result

xrspatial/fire.py

Lines changed: 25 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
from xrspatial.dataset_support import supports_dataset
2727
from xrspatial.utils import (
2828
ArrayTypeFunctionMapping,
29+
_dask_task_name_kwargs,
2930
_validate_raster,
3031
_validate_scalar,
3132
cuda_args,
@@ -165,7 +166,8 @@ def _dnbr_gpu(pre_data, post_data, out):
165166

166167

167168
def _dnbr_dask(pre_data, post_data):
168-
return da.map_blocks(_dnbr_cpu, pre_data, post_data, meta=np.array(()))
169+
return da.map_blocks(_dnbr_cpu, pre_data, post_data, meta=np.array(()),
170+
**_dask_task_name_kwargs('xrspatial.dnbr'))
169171

170172

171173
def _dnbr_cupy(pre_data, post_data):
@@ -178,7 +180,8 @@ def _dnbr_cupy(pre_data, post_data):
178180

179181
def _dnbr_dask_cupy(pre_data, post_data):
180182
return da.map_blocks(_dnbr_cupy, pre_data, post_data,
181-
dtype=cupy.float32, meta=cupy.array(()))
183+
dtype=cupy.float32, meta=cupy.array(()),
184+
**_dask_task_name_kwargs('xrspatial.dnbr'))
182185

183186

184187
def dnbr(pre_nbr_agg: xr.DataArray,
@@ -256,7 +259,8 @@ def _rdnbr_gpu(dnbr_data, pre_data, out):
256259

257260

258261
def _rdnbr_dask(dnbr_data, pre_data):
259-
return da.map_blocks(_rdnbr_cpu, dnbr_data, pre_data, meta=np.array(()))
262+
return da.map_blocks(_rdnbr_cpu, dnbr_data, pre_data, meta=np.array(()),
263+
**_dask_task_name_kwargs('xrspatial.rdnbr'))
260264

261265

262266
def _rdnbr_cupy(dnbr_data, pre_data):
@@ -269,7 +273,8 @@ def _rdnbr_cupy(dnbr_data, pre_data):
269273

270274
def _rdnbr_dask_cupy(dnbr_data, pre_data):
271275
return da.map_blocks(_rdnbr_cupy, dnbr_data, pre_data,
272-
dtype=cupy.float32, meta=cupy.array(()))
276+
dtype=cupy.float32, meta=cupy.array(()),
277+
**_dask_task_name_kwargs('xrspatial.rdnbr'))
273278

274279

275280
def rdnbr(dnbr_agg: xr.DataArray,
@@ -382,7 +387,8 @@ def _bsc_gpu(data, out):
382387

383388

384389
def _bsc_dask(data):
385-
return da.map_blocks(_bsc_cpu, data, dtype=np.int8, meta=np.array(()))
390+
return da.map_blocks(_bsc_cpu, data, dtype=np.int8, meta=np.array(()),
391+
**_dask_task_name_kwargs('xrspatial.burn_severity_class'))
386392

387393

388394
def _bsc_cupy(data):
@@ -394,7 +400,8 @@ def _bsc_cupy(data):
394400

395401
def _bsc_dask_cupy(data):
396402
return da.map_blocks(_bsc_cupy, data,
397-
dtype=np.int8, meta=cupy.array(()))
403+
dtype=np.int8, meta=cupy.array(()),
404+
**_dask_task_name_kwargs('xrspatial.burn_severity_class'))
398405

399406

400407
@supports_dataset
@@ -464,7 +471,8 @@ def _fli_gpu(fuel_data, spread_data, heat_content, out):
464471

465472
def _fli_dask(fuel_data, spread_data, heat_content):
466473
return da.map_blocks(_fli_cpu, fuel_data, spread_data, heat_content,
467-
meta=np.array(()))
474+
meta=np.array(()),
475+
**_dask_task_name_kwargs('xrspatial.fireline_intensity'))
468476

469477

470478
def _fli_cupy(fuel_data, spread_data, heat_content):
@@ -477,7 +485,8 @@ def _fli_cupy(fuel_data, spread_data, heat_content):
477485

478486
def _fli_dask_cupy(fuel_data, spread_data, heat_content):
479487
return da.map_blocks(_fli_cupy, fuel_data, spread_data, heat_content,
480-
dtype=cupy.float32, meta=cupy.array(()))
488+
dtype=cupy.float32, meta=cupy.array(()),
489+
**_dask_task_name_kwargs('xrspatial.fireline_intensity'))
481490

482491

483492
def fireline_intensity(fuel_consumed_agg: xr.DataArray,
@@ -562,7 +571,8 @@ def _fl_gpu(intensity_data, out):
562571

563572

564573
def _fl_dask(intensity_data):
565-
return da.map_blocks(_fl_cpu, intensity_data, meta=np.array(()))
574+
return da.map_blocks(_fl_cpu, intensity_data, meta=np.array(()),
575+
**_dask_task_name_kwargs('xrspatial.flame_length'))
566576

567577

568578
def _fl_cupy(intensity_data):
@@ -575,7 +585,8 @@ def _fl_cupy(intensity_data):
575585

576586
def _fl_dask_cupy(intensity_data):
577587
return da.map_blocks(_fl_cupy, intensity_data,
578-
dtype=cupy.float32, meta=cupy.array(()))
588+
dtype=cupy.float32, meta=cupy.array(()),
589+
**_dask_task_name_kwargs('xrspatial.flame_length'))
579590

580591

581592
@supports_dataset
@@ -733,6 +744,7 @@ def _ros_dask(slope_data, wind_data, moisture_data,
733744
w_0, h, M_x, beta, rho_b, Gamma, eta_s, xi, epsilon,
734745
C_w, B_w, E_w,
735746
meta=np.array(()),
747+
**_dask_task_name_kwargs('xrspatial.rate_of_spread'),
736748
)
737749

738750

@@ -758,6 +770,7 @@ def _ros_dask_cupy(slope_data, wind_data, moisture_data,
758770
w_0, h, M_x, beta, rho_b, Gamma, eta_s, xi, epsilon,
759771
C_w, B_w, E_w,
760772
dtype=cupy.float32, meta=cupy.array(()),
773+
**_dask_task_name_kwargs('xrspatial.rate_of_spread'),
761774
)
762775

763776

@@ -907,6 +920,7 @@ def _kbdi_dask(kbdi_prev_data, max_temp_data, precip_data, annual_precip):
907920
return da.map_blocks(
908921
_kbdi_cpu, kbdi_prev_data, max_temp_data, precip_data, annual_precip,
909922
meta=np.array(()),
923+
**_dask_task_name_kwargs('xrspatial.kbdi'),
910924
)
911925

912926

@@ -926,6 +940,7 @@ def _kbdi_dask_cupy(kbdi_prev_data, max_temp_data, precip_data,
926940
_kbdi_cupy, kbdi_prev_data, max_temp_data, precip_data,
927941
annual_precip,
928942
dtype=cupy.float32, meta=cupy.array(()),
943+
**_dask_task_name_kwargs('xrspatial.kbdi'),
929944
)
930945

931946

xrspatial/flood.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
da = None
3030

3131
from xrspatial.utils import (
32+
_dask_task_name_kwargs,
3233
_validate_raster,
3334
has_cuda_and_cupy,
3435
is_cupy_array,
@@ -627,6 +628,7 @@ def _apply_lut(block, lut=lut):
627628
return _da.map_blocks(
628629
_apply_lut, data, dtype=np.float64,
629630
meta=np.array((), dtype=np.float64),
631+
**_dask_task_name_kwargs('xrspatial.vegetation_roughness_nlcd'),
630632
)
631633

632634

@@ -669,6 +671,7 @@ def _apply(block):
669671
return _da.map_blocks(
670672
_apply, data, dtype=np.float64,
671673
meta=np.array((), dtype=np.float64),
674+
**_dask_task_name_kwargs('xrspatial.vegetation_roughness_ndvi'),
672675
)
673676

674677

@@ -795,6 +798,7 @@ def _apply(lc_block, sg_block, lut=lut):
795798
return _da.map_blocks(
796799
_apply, lc, sg, dtype=np.float64,
797800
meta=np.array((), dtype=np.float64),
801+
**_dask_task_name_kwargs('xrspatial.vegetation_curve_number'),
798802
)
799803

800804

0 commit comments

Comments
 (0)