|
9 | 9 | from numba import cuda |
10 | 10 | from xarray import DataArray |
11 | 11 |
|
12 | | -from xrspatial.utils import (ArrayTypeFunctionMapping, cuda_args, ngjit, not_implemented_func, |
13 | | - validate_arrays) |
| 12 | +from xrspatial.utils import (ArrayTypeFunctionMapping, _validate_raster, cuda_args, ngjit, |
| 13 | + not_implemented_func, validate_arrays) |
14 | 14 | from xrspatial.dataset_support import supports_dataset_bands |
15 | 15 |
|
16 | 16 | # 3rd-party |
@@ -153,6 +153,10 @@ def arvi(nir_agg: xr.DataArray, |
153 | 153 | [ 0.02488688 0.00816024 0.00068681 0.02650602]] |
154 | 154 | """ |
155 | 155 |
|
| 156 | + _validate_raster(nir_agg, func_name='arvi', name='nir_agg') |
| 157 | + _validate_raster(red_agg, func_name='arvi', name='red_agg') |
| 158 | + _validate_raster(blue_agg, func_name='arvi', name='blue_agg') |
| 159 | + |
156 | 160 | validate_arrays(red_agg, nir_agg, blue_agg) |
157 | 161 |
|
158 | 162 | mapper = ArrayTypeFunctionMapping(numpy_func=_arvi_cpu, |
@@ -312,6 +316,10 @@ def evi(nir_agg: xr.DataArray, |
312 | 316 | [-8.53211 5.486726 0.8394608 3.5043988]] |
313 | 317 | """ |
314 | 318 |
|
| 319 | + _validate_raster(nir_agg, func_name='evi', name='nir_agg') |
| 320 | + _validate_raster(red_agg, func_name='evi', name='red_agg') |
| 321 | + _validate_raster(blue_agg, func_name='evi', name='blue_agg') |
| 322 | + |
315 | 323 | if not red_agg.shape == nir_agg.shape == blue_agg.shape: |
316 | 324 | raise ValueError("input layers expected to have equal shapes") |
317 | 325 |
|
@@ -456,6 +464,9 @@ def gci(nir_agg: xr.DataArray, |
456 | 464 | [0.34822243 0.28270411 0.29641694 0.359375 ]] |
457 | 465 | """ |
458 | 466 |
|
| 467 | + _validate_raster(nir_agg, func_name='gci', name='nir_agg') |
| 468 | + _validate_raster(green_agg, func_name='gci', name='green_agg') |
| 469 | + |
459 | 470 | validate_arrays(nir_agg, green_agg) |
460 | 471 |
|
461 | 472 | mapper = ArrayTypeFunctionMapping(numpy_func=_gci_cpu, |
@@ -540,6 +551,9 @@ def nbr(nir_agg: xr.DataArray, |
540 | 551 | [-0.10823033 -0.14486392 -0.12981689 -0.12121212]] |
541 | 552 | """ |
542 | 553 |
|
| 554 | + _validate_raster(nir_agg, func_name='nbr', name='nir_agg') |
| 555 | + _validate_raster(swir2_agg, func_name='nbr', name='swir2_agg') |
| 556 | + |
543 | 557 | validate_arrays(nir_agg, swir2_agg) |
544 | 558 |
|
545 | 559 | mapper = ArrayTypeFunctionMapping( |
@@ -631,6 +645,9 @@ def nbr2(swir1_agg: xr.DataArray, |
631 | 645 | [0.07218576 0.06857143 0.067659 0.07520281]] |
632 | 646 | """ |
633 | 647 |
|
| 648 | + _validate_raster(swir1_agg, func_name='nbr2', name='swir1_agg') |
| 649 | + _validate_raster(swir2_agg, func_name='nbr2', name='swir2_agg') |
| 650 | + |
634 | 651 | validate_arrays(swir1_agg, swir2_agg) |
635 | 652 |
|
636 | 653 | mapper = ArrayTypeFunctionMapping( |
@@ -715,6 +732,9 @@ def ndvi(nir_agg: xr.DataArray, |
715 | 732 | [0.06709956 0.04431737 0.04496226 0.07792632]] |
716 | 733 | """ |
717 | 734 |
|
| 735 | + _validate_raster(nir_agg, func_name='ndvi', name='nir_agg') |
| 736 | + _validate_raster(red_agg, func_name='ndvi', name='red_agg') |
| 737 | + |
718 | 738 | validate_arrays(nir_agg, red_agg) |
719 | 739 |
|
720 | 740 | mapper = ArrayTypeFunctionMapping( |
@@ -804,6 +824,9 @@ def ndmi(nir_agg: xr.DataArray, |
804 | 824 | [-0.17901748 -0.21133603 -0.19575651 -0.19464068]] |
805 | 825 | """ |
806 | 826 |
|
| 827 | + _validate_raster(nir_agg, func_name='ndmi', name='nir_agg') |
| 828 | + _validate_raster(swir1_agg, func_name='ndmi', name='swir1_agg') |
| 829 | + |
807 | 830 | validate_arrays(nir_agg, swir1_agg) |
808 | 831 |
|
809 | 832 | mapper = ArrayTypeFunctionMapping( |
@@ -994,6 +1017,9 @@ def savi(nir_agg: xr.DataArray, |
994 | 1017 | [0.03353769 0.02215077 0.02247375 0.03895046]] |
995 | 1018 | """ |
996 | 1019 |
|
| 1020 | + _validate_raster(nir_agg, func_name='savi', name='nir_agg') |
| 1021 | + _validate_raster(red_agg, func_name='savi', name='red_agg') |
| 1022 | + |
997 | 1023 | validate_arrays(red_agg, nir_agg) |
998 | 1024 |
|
999 | 1025 | if not -1.0 <= soil_factor <= 1.0: |
@@ -1138,6 +1164,10 @@ def sipi(nir_agg: xr.DataArray, |
1138 | 1164 | [1.2903225 1.6451613 1.9708029 1.3556485]] |
1139 | 1165 | """ |
1140 | 1166 |
|
| 1167 | + _validate_raster(nir_agg, func_name='sipi', name='nir_agg') |
| 1168 | + _validate_raster(red_agg, func_name='sipi', name='red_agg') |
| 1169 | + _validate_raster(blue_agg, func_name='sipi', name='blue_agg') |
| 1170 | + |
1141 | 1171 | validate_arrays(red_agg, nir_agg, blue_agg) |
1142 | 1172 |
|
1143 | 1173 | mapper = ArrayTypeFunctionMapping(numpy_func=_sipi_cpu, |
@@ -1314,6 +1344,10 @@ def ebbi(red_agg: xr.DataArray, |
1314 | 1344 | * lon (lon) float64 0.0 1.0 2.0 3.0 |
1315 | 1345 | """ |
1316 | 1346 |
|
| 1347 | + _validate_raster(red_agg, func_name='ebbi', name='red_agg') |
| 1348 | + _validate_raster(swir_agg, func_name='ebbi', name='swir_agg') |
| 1349 | + _validate_raster(tir_agg, func_name='ebbi', name='tir_agg') |
| 1350 | + |
1317 | 1351 | validate_arrays(red_agg, swir_agg, tir_agg) |
1318 | 1352 |
|
1319 | 1353 | mapper = ArrayTypeFunctionMapping(numpy_func=_ebbi_cpu, |
@@ -1515,6 +1549,10 @@ def true_color(r, g, b, nodata=1, c=10.0, th=0.125, name='true_color'): |
1515 | 1549 | >>> true_color_img.plot.imshow() |
1516 | 1550 | """ |
1517 | 1551 |
|
| 1552 | + _validate_raster(r, func_name='true_color', name='r') |
| 1553 | + _validate_raster(g, func_name='true_color', name='g') |
| 1554 | + _validate_raster(b, func_name='true_color', name='b') |
| 1555 | + |
1518 | 1556 | mapper = ArrayTypeFunctionMapping( |
1519 | 1557 | numpy_func=_true_color_numpy, |
1520 | 1558 | dask_func=_true_color_dask, |
|
0 commit comments