xarray-spatial 0.10.14__tar.gz → 0.10.15__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (567) hide show
  1. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/CHANGELOG.md +6 -0
  2. {xarray_spatial-0.10.14/xarray_spatial.egg-info → xarray_spatial-0.10.15}/PKG-INFO +1 -1
  3. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15/xarray_spatial.egg-info}/PKG-INFO +1 -1
  4. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xarray_spatial.egg-info/scm_version.json +2 -2
  5. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/_version.py +3 -3
  6. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/terrain.py +16 -5
  7. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_terrain.py +57 -0
  8. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/.claude/sweep-accuracy-state.csv +0 -0
  9. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/.claude/sweep-api-consistency-state.csv +0 -0
  10. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/.claude/sweep-documentation-state.csv +0 -0
  11. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/.claude/sweep-metadata-state.csv +0 -0
  12. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/.claude/sweep-performance-state.csv +0 -0
  13. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/.claude/sweep-security-state.csv +0 -0
  14. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/.claude/sweep-style-state.csv +0 -0
  15. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/.claude/sweep-test-coverage-state.csv +0 -0
  16. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/.codex/sweep-accuracy-state.csv +0 -0
  17. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/.codex/sweep-api-consistency-state.csv +0 -0
  18. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/.codex/sweep-metadata-state.csv +0 -0
  19. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/.codex/sweep-performance-state.csv +0 -0
  20. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/.codex/sweep-security-state.csv +0 -0
  21. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/.codex/sweep-style-state.csv +0 -0
  22. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/.codex/sweep-test-coverage-state.csv +0 -0
  23. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/.efficiency-audit-baseline.json +0 -0
  24. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/.efficiency-audit-baseline.prev.json +0 -0
  25. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/.gitattributes +0 -0
  26. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  27. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/.github/ISSUE_TEMPLATE/feature-proposal.md +0 -0
  28. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/.github/ISSUE_TEMPLATE/new-contributor.md +0 -0
  29. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/.github/labeler.yml +0 -0
  30. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/.github/pull_request_template.md +0 -0
  31. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/.github/workflows/benchmarks.yml +0 -0
  32. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/.github/workflows/copilot-review.yml +0 -0
  33. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/.github/workflows/docs.yml +0 -0
  34. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/.github/workflows/labeler.yml +0 -0
  35. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/.github/workflows/pypi-publish.yml +0 -0
  36. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/.github/workflows/test-cog-validator.yml +0 -0
  37. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/.github/workflows/test-geotiff-corpus.yml +0 -0
  38. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/.github/workflows/test.yml +0 -0
  39. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/.github/workflows/welcome-contributor.yml +0 -0
  40. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/.gitignore +0 -0
  41. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/.kilo/sweep-accuracy-state.csv +0 -0
  42. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/.kilo/sweep-api-consistency-state.csv +0 -0
  43. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/.kilo/sweep-metadata-state.csv +0 -0
  44. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/.kilo/sweep-performance-state.csv +0 -0
  45. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/.kilo/sweep-security-state.csv +0 -0
  46. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/.kilo/sweep-style-state.csv +0 -0
  47. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/.kilo/sweep-test-coverage-state.csv +0 -0
  48. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/.readthedocs.yml +0 -0
  49. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/AI_POLICY.md +0 -0
  50. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/CLAUDE.md +0 -0
  51. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/CODE_OF_CONDUCT.md +0 -0
  52. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/CONTRIBUTING.md +0 -0
  53. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/Citation-styles.md +0 -0
  54. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/LICENSE.txt +0 -0
  55. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/MANIFEST.in +0 -0
  56. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/README.md +0 -0
  57. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/RELEASE.md +0 -0
  58. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/codecov.yml +0 -0
  59. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/pyproject.toml +0 -0
  60. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/setup.cfg +0 -0
  61. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/setup.py +0 -0
  62. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xarray_spatial.egg-info/SOURCES.txt +0 -0
  63. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xarray_spatial.egg-info/dependency_links.txt +0 -0
  64. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xarray_spatial.egg-info/entry_points.txt +0 -0
  65. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xarray_spatial.egg-info/not-zip-safe +0 -0
  66. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xarray_spatial.egg-info/requires.txt +0 -0
  67. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xarray_spatial.egg-info/scm_file_list.json +0 -0
  68. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xarray_spatial.egg-info/top_level.txt +0 -0
  69. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/__init__.py +0 -0
  70. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/__main__.py +0 -0
  71. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/_template_data.py +0 -0
  72. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/accessor.py +0 -0
  73. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/analytics.py +0 -0
  74. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/aspect.py +0 -0
  75. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/balanced_allocation.py +0 -0
  76. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/bilateral.py +0 -0
  77. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/bump.py +0 -0
  78. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/classify.py +0 -0
  79. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/contour.py +0 -0
  80. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/convolution.py +0 -0
  81. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/corridor.py +0 -0
  82. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/cost_distance.py +0 -0
  83. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/curvature.py +0 -0
  84. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/dasymetric.py +0 -0
  85. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/dataset_support.py +0 -0
  86. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/datasets/__init__.py +0 -0
  87. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/datasets/sentinel-2/blue_band.nc +0 -0
  88. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/datasets/sentinel-2/green_band.nc +0 -0
  89. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/datasets/sentinel-2/nir_band.nc +0 -0
  90. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/datasets/sentinel-2/red_band.nc +0 -0
  91. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/datasets/sentinel-2/swir1_band.nc +0 -0
  92. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/datasets/sentinel-2/swir2_band.nc +0 -0
  93. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/diagnostics.py +0 -0
  94. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/diffusion.py +0 -0
  95. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/edge_detection.py +0 -0
  96. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/emerging_hotspots.py +0 -0
  97. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/erosion.py +0 -0
  98. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/experimental/__init__.py +0 -0
  99. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/experimental/min_observable_height.py +0 -0
  100. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/fire.py +0 -0
  101. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/flood.py +0 -0
  102. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/focal.py +0 -0
  103. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geodesic.py +0 -0
  104. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/__init__.py +0 -0
  105. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/_attrs.py +0 -0
  106. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/_backends/__init__.py +0 -0
  107. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/_backends/_gpu_helpers.py +0 -0
  108. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/_backends/dask.py +0 -0
  109. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/_backends/gpu.py +0 -0
  110. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/_backends/vrt.py +0 -0
  111. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/_cog_http.py +0 -0
  112. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/_compression.py +0 -0
  113. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/_coords.py +0 -0
  114. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/_crs.py +0 -0
  115. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/_decode.py +0 -0
  116. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/_dtypes.py +0 -0
  117. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/_encode.py +0 -0
  118. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/_errors.py +0 -0
  119. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/_geotags.py +0 -0
  120. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/_gpu_decode.py +0 -0
  121. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/_header.py +0 -0
  122. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/_layout.py +0 -0
  123. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/_nodata.py +0 -0
  124. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/_overview.py +0 -0
  125. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/_overview_kernels.py +0 -0
  126. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/_pam.py +0 -0
  127. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/_reader.py +0 -0
  128. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/_runtime.py +0 -0
  129. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/_safe_xml.py +0 -0
  130. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/_sidecar.py +0 -0
  131. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/_sources.py +0 -0
  132. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/_symbology.py +0 -0
  133. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/_validation.py +0 -0
  134. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/_vrt.py +0 -0
  135. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/_vrt_validation.py +0 -0
  136. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/_write_layout.py +0 -0
  137. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/_writer.py +0 -0
  138. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/_writers/__init__.py +0 -0
  139. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/_writers/eager.py +0 -0
  140. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/_writers/gpu.py +0 -0
  141. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/_writers/vrt.py +0 -0
  142. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/_xarray_backend.py +0 -0
  143. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/__init__.py +0 -0
  144. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/_geotiff_fixtures.py +0 -0
  145. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/_helpers/__init__.py +0 -0
  146. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/_helpers/markers.py +0 -0
  147. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/_helpers/tiff_builders.py +0 -0
  148. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/_helpers/tiff_surgery.py +0 -0
  149. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/attrs/__init__.py +0 -0
  150. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/attrs/test_contract.py +0 -0
  151. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/bench_vs_rioxarray.py +0 -0
  152. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/conftest.py +0 -0
  153. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/golden_corpus/README.md +0 -0
  154. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/golden_corpus/__init__.py +0 -0
  155. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/golden_corpus/_marks.py +0 -0
  156. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/golden_corpus/_oracle.py +0 -0
  157. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/golden_corpus/fixtures/cog_internal_overview_uint16.tif +0 -0
  158. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/golden_corpus/fixtures/compression_deflate_predictor2_uint16.tif +0 -0
  159. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/golden_corpus/fixtures/compression_deflate_predictor3_float32.tif +0 -0
  160. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/golden_corpus/fixtures/compression_jpeg_uint8_ycbcr.tif +0 -0
  161. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/golden_corpus/fixtures/compression_lerc_float32.tif +0 -0
  162. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/golden_corpus/fixtures/compression_lzw_predictor2_int16.tif +0 -0
  163. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/golden_corpus/fixtures/compression_none_uint8.tif +0 -0
  164. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/golden_corpus/fixtures/crs_citation_only.tif +0 -0
  165. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/golden_corpus/fixtures/crs_epsg_3857.tif +0 -0
  166. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/golden_corpus/fixtures/crs_wkt_utm10n.tif +0 -0
  167. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/golden_corpus/fixtures/dtype_float32.tif +0 -0
  168. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/golden_corpus/fixtures/dtype_float64.tif +0 -0
  169. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/golden_corpus/fixtures/dtype_int16.tif +0 -0
  170. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/golden_corpus/fixtures/dtype_int32.tif +0 -0
  171. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/golden_corpus/fixtures/dtype_int8.tif +0 -0
  172. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/golden_corpus/fixtures/dtype_uint16.tif +0 -0
  173. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/golden_corpus/fixtures/dtype_uint32.tif +0 -0
  174. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/golden_corpus/fixtures/dtype_uint8.tif +0 -0
  175. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/golden_corpus/fixtures/extra_tags_uint16.tif +0 -0
  176. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/golden_corpus/fixtures/gdal_metadata_namespaced_uint16.tif +0 -0
  177. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/golden_corpus/fixtures/nodata_int_sentinel_uint16.tif +0 -0
  178. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/golden_corpus/fixtures/nodata_miniswhite_uint8.tif +0 -0
  179. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/golden_corpus/fixtures/nodata_nan_float32.tif +0 -0
  180. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/golden_corpus/fixtures/overview_external_ovr_uint16.tif +0 -0
  181. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/golden_corpus/fixtures/overview_external_ovr_uint16.tif.ovr +0 -0
  182. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/golden_corpus/fixtures/overview_internal_uint16.tif +0 -0
  183. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/golden_corpus/fixtures/planar_separate_uint8_rgb.tif +0 -0
  184. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/golden_corpus/fixtures/sparse_tiled_uint16.tif +0 -0
  185. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/golden_corpus/fixtures/stripped_be_uint16.tif +0 -0
  186. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/golden_corpus/fixtures/stripped_le_uint16.tif +0 -0
  187. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/golden_corpus/fixtures/tiled_be_uint16.tif +0 -0
  188. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/golden_corpus/fixtures/tiled_le_uint16.tif +0 -0
  189. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/golden_corpus/generate.py +0 -0
  190. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/golden_corpus/manifest.yaml +0 -0
  191. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/golden_corpus/test_compression.py +0 -0
  192. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/golden_corpus/test_corpus_determinism.py +0 -0
  193. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/golden_corpus/test_dask_gpu.py +0 -0
  194. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/golden_corpus/test_dask_numpy.py +0 -0
  195. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/golden_corpus/test_dtype_variants.py +0 -0
  196. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/golden_corpus/test_eager_numpy.py +0 -0
  197. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/golden_corpus/test_fsspec.py +0 -0
  198. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/golden_corpus/test_gpu.py +0 -0
  199. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/golden_corpus/test_http.py +0 -0
  200. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/golden_corpus/test_layout_endian.py +0 -0
  201. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/golden_corpus/test_manifest.py +0 -0
  202. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/golden_corpus/test_metadata_tags.py +0 -0
  203. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/golden_corpus/test_nodata_sentinels.py +0 -0
  204. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/golden_corpus/test_oracle.py +0 -0
  205. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/golden_corpus/test_overview_cog.py +0 -0
  206. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/golden_corpus/test_vrt.py +0 -0
  207. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/gpu/__init__.py +0 -0
  208. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/gpu/test_codec.py +0 -0
  209. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/gpu/test_kernels_and_kwargs.py +0 -0
  210. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/gpu/test_reader.py +0 -0
  211. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/gpu/test_writer.py +0 -0
  212. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/integration/__init__.py +0 -0
  213. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/integration/test_dask_pipeline.py +0 -0
  214. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/integration/test_gpu_pipeline.py +0 -0
  215. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/integration/test_http_sources.py +0 -0
  216. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/integration/test_sidecar.py +0 -0
  217. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/parity/__init__.py +0 -0
  218. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/parity/test_api_consolidation.py +0 -0
  219. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/parity/test_backend_matrix.py +0 -0
  220. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/parity/test_finalization.py +0 -0
  221. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/parity/test_pixel_equality.py +0 -0
  222. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/parity/test_reference.py +0 -0
  223. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/parity/test_signature_contract.py +0 -0
  224. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/read/__init__.py +0 -0
  225. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/read/test_basic.py +0 -0
  226. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/read/test_bbox_2555.py +0 -0
  227. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/read/test_bbox_vrt_2668.py +0 -0
  228. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/read/test_cloud_source_concurrency_3361.py +0 -0
  229. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/read/test_compression.py +0 -0
  230. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/read/test_coords.py +0 -0
  231. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/read/test_crs.py +0 -0
  232. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/read/test_degenerate_shapes.py +0 -0
  233. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/read/test_dtypes.py +0 -0
  234. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/read/test_endianness.py +0 -0
  235. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/read/test_georef.py +0 -0
  236. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/read/test_mask_and_scale_dtype_parity_3066.py +0 -0
  237. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/read/test_nodata.py +0 -0
  238. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/read/test_overview.py +0 -0
  239. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/read/test_rioxarray_compat_2961.py +0 -0
  240. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/read/test_scale_zero_3104.py +0 -0
  241. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/read/test_streaming.py +0 -0
  242. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/read/test_tiling.py +0 -0
  243. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/read/test_unpack_noop_doc_3263.py +0 -0
  244. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/release_gates/__init__.py +0 -0
  245. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/release_gates/test_features.py +0 -0
  246. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/release_gates/test_stable_features.py +0 -0
  247. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/test_edge_cases.py +0 -0
  248. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/test_fuzz_hypothesis.py +0 -0
  249. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/test_polish.py +0 -0
  250. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/test_round_trip.py +0 -0
  251. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/test_security.py +0 -0
  252. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/test_shutdown_cleanup_2486.py +0 -0
  253. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/test_stable_only_bbox_ordering_2869.py +0 -0
  254. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/test_stable_only_remote_2821.py +0 -0
  255. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/test_xarray_backend_3365.py +0 -0
  256. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/test_xarray_backend_coregister_3376.py +0 -0
  257. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/test_xarray_backend_coregister_target_3379.py +0 -0
  258. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/unit/__init__.py +0 -0
  259. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/unit/test_codec_roundtrip.py +0 -0
  260. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/unit/test_compression.py +0 -0
  261. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/unit/test_degenerate_pixel_size_3331.py +0 -0
  262. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/unit/test_exception_exports_3265.py +0 -0
  263. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/unit/test_geotags.py +0 -0
  264. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/unit/test_header.py +0 -0
  265. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/unit/test_ifd.py +0 -0
  266. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/unit/test_input_validation.py +0 -0
  267. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/unit/test_metadata.py +0 -0
  268. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/unit/test_photometric.py +0 -0
  269. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/unit/test_predictor.py +0 -0
  270. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/unit/test_safe_xml.py +0 -0
  271. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/unit/test_signatures.py +0 -0
  272. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/vrt/__init__.py +0 -0
  273. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/vrt/test_dtype_conversion.py +0 -0
  274. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/vrt/test_metadata.py +0 -0
  275. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/vrt/test_missing_sources.py +0 -0
  276. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/vrt/test_non_georef_placement_3116.py +0 -0
  277. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/vrt/test_parity.py +0 -0
  278. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/vrt/test_source_opt_ins_2672.py +0 -0
  279. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/vrt/test_validation.py +0 -0
  280. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/vrt/test_window.py +0 -0
  281. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/write/__init__.py +0 -0
  282. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/write/test_basic.py +0 -0
  283. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/write/test_bigtiff.py +0 -0
  284. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/write/test_category_sidecar_backends_3483.py +0 -0
  285. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/write/test_cog.py +0 -0
  286. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/write/test_crs.py +0 -0
  287. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/write/test_nodata.py +0 -0
  288. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/write/test_overview.py +0 -0
  289. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/write/test_pack_3064.py +0 -0
  290. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/write/test_pack_64bit_sentinel_3264.py +0 -0
  291. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/write/test_pack_band_subset_3161.py +0 -0
  292. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/write/test_pack_float_width_3080.py +0 -0
  293. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/write/test_pack_lazy_nan_guard_3235.py +0 -0
  294. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/write/test_pack_nodata_kwarg_3168.py +0 -0
  295. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/write/test_pack_range_guard_3260.py +0 -0
  296. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/write/test_streaming.py +0 -0
  297. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/write/test_symbology_sidecar_3537.py +0 -0
  298. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/geotiff/tests/write/test_vrt_atomic.py +0 -0
  299. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/glcm.py +0 -0
  300. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/gpu_rtx/__init__.py +0 -0
  301. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/gpu_rtx/_memory.py +0 -0
  302. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/gpu_rtx/cuda_utils.py +0 -0
  303. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/gpu_rtx/hillshade.py +0 -0
  304. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/gpu_rtx/mesh_utils.py +0 -0
  305. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/gpu_rtx/viewshed.py +0 -0
  306. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hillshade.py +0 -0
  307. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/__init__.py +0 -0
  308. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/_boundary_store.py +0 -0
  309. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/basin_d8.py +0 -0
  310. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/fill_d8.py +0 -0
  311. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/flow_accumulation_d8.py +0 -0
  312. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/flow_accumulation_dinf.py +0 -0
  313. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/flow_accumulation_mfd.py +0 -0
  314. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/flow_direction_d8.py +0 -0
  315. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/flow_direction_dinf.py +0 -0
  316. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/flow_direction_mfd.py +0 -0
  317. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/flow_length_d8.py +0 -0
  318. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/flow_length_dinf.py +0 -0
  319. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/flow_length_mfd.py +0 -0
  320. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/flow_path_d8.py +0 -0
  321. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/flow_path_dinf.py +0 -0
  322. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/flow_path_mfd.py +0 -0
  323. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/hand_d8.py +0 -0
  324. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/hand_dinf.py +0 -0
  325. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/hand_mfd.py +0 -0
  326. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/sink_d8.py +0 -0
  327. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/snap_pour_point_d8.py +0 -0
  328. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/stream_link_d8.py +0 -0
  329. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/stream_link_dinf.py +0 -0
  330. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/stream_link_mfd.py +0 -0
  331. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/stream_order_d8.py +0 -0
  332. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/stream_order_dinf.py +0 -0
  333. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/stream_order_mfd.py +0 -0
  334. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/tests/__init__.py +0 -0
  335. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/tests/conftest.py +0 -0
  336. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/tests/test_basin_d8.py +0 -0
  337. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/tests/test_fill_d8.py +0 -0
  338. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/tests/test_flow_accumulation_d8.py +0 -0
  339. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/tests/test_flow_accumulation_dinf.py +0 -0
  340. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/tests/test_flow_accumulation_mfd.py +0 -0
  341. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/tests/test_flow_direction_d8.py +0 -0
  342. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/tests/test_flow_direction_dinf.py +0 -0
  343. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/tests/test_flow_direction_mfd.py +0 -0
  344. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/tests/test_flow_length_d8.py +0 -0
  345. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/tests/test_flow_length_dinf.py +0 -0
  346. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/tests/test_flow_length_mfd.py +0 -0
  347. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/tests/test_flow_path_d8.py +0 -0
  348. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/tests/test_flow_path_dinf.py +0 -0
  349. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/tests/test_flow_path_mfd.py +0 -0
  350. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/tests/test_hand_d8.py +0 -0
  351. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/tests/test_hand_dinf.py +0 -0
  352. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/tests/test_hand_mfd.py +0 -0
  353. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/tests/test_routing_public_api.py +0 -0
  354. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/tests/test_sink_d8.py +0 -0
  355. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/tests/test_snap_pour_point_d8.py +0 -0
  356. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/tests/test_stream_link_d8.py +0 -0
  357. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/tests/test_stream_link_dinf.py +0 -0
  358. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/tests/test_stream_link_mfd.py +0 -0
  359. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/tests/test_stream_order_d8.py +0 -0
  360. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/tests/test_stream_order_dinf.py +0 -0
  361. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/tests/test_stream_order_mfd.py +0 -0
  362. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/tests/test_twi_d8.py +0 -0
  363. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/tests/test_validate_cellsize.py +0 -0
  364. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/tests/test_validate_mfd_companion_shape.py +0 -0
  365. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/tests/test_validate_mfd_fractions.py +0 -0
  366. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/tests/test_validate_scalar_params.py +0 -0
  367. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/tests/test_validate_secondary_args.py +0 -0
  368. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/tests/test_watershed_d8.py +0 -0
  369. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/tests/test_watershed_dinf.py +0 -0
  370. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/tests/test_watershed_mfd.py +0 -0
  371. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/twi_d8.py +0 -0
  372. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/watershed_d8.py +0 -0
  373. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/watershed_dinf.py +0 -0
  374. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/hydro/watershed_mfd.py +0 -0
  375. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/interpolate/__init__.py +0 -0
  376. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/interpolate/_idw.py +0 -0
  377. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/interpolate/_kriging.py +0 -0
  378. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/interpolate/_spline.py +0 -0
  379. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/interpolate/_validation.py +0 -0
  380. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/interpolate/_vector.py +0 -0
  381. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/kde.py +0 -0
  382. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/mahalanobis.py +0 -0
  383. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/mcda/__init__.py +0 -0
  384. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/mcda/combine.py +0 -0
  385. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/mcda/constrain.py +0 -0
  386. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/mcda/sensitivity.py +0 -0
  387. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/mcda/standardize.py +0 -0
  388. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/mcda/weights.py +0 -0
  389. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/morphology.py +0 -0
  390. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/multispectral.py +0 -0
  391. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/normalize.py +0 -0
  392. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/pathfinding.py +0 -0
  393. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/perlin.py +0 -0
  394. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/polygon_clip.py +0 -0
  395. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/polygonize.py +0 -0
  396. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/preview.py +0 -0
  397. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/proximity.py +0 -0
  398. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/rasterize.py +0 -0
  399. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/reproject/__init__.py +0 -0
  400. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/reproject/_crs_utils.py +0 -0
  401. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/reproject/_grid.py +0 -0
  402. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/reproject/_interpolate.py +0 -0
  403. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/reproject/_itrf.py +0 -0
  404. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/reproject/_lite_crs.py +0 -0
  405. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/reproject/_merge.py +0 -0
  406. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/reproject/_projections.py +0 -0
  407. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/reproject/_projections_cuda.py +0 -0
  408. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/reproject/_transform.py +0 -0
  409. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/reproject/_vertical.py +0 -0
  410. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/reproject/grids/us_nga_egm96_15.tif +0 -0
  411. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/resample.py +0 -0
  412. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/sieve.py +0 -0
  413. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/sky_view_factor.py +0 -0
  414. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/slope.py +0 -0
  415. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/surface_distance.py +0 -0
  416. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/templates.py +0 -0
  417. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/terrain_metrics.py +0 -0
  418. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/__init__.py +0 -0
  419. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/bench_reproject_vs_rioxarray.py +0 -0
  420. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/conftest.py +0 -0
  421. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/general_checks.py +0 -0
  422. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_accessor.py +0 -0
  423. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_analytics.py +0 -0
  424. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_aspect.py +0 -0
  425. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_balanced_allocation.py +0 -0
  426. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_bilateral.py +0 -0
  427. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_bump.py +0 -0
  428. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_classify.py +0 -0
  429. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_contour.py +0 -0
  430. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_contract_validate.py +0 -0
  431. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_convolution.py +0 -0
  432. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_corridor.py +0 -0
  433. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_cost_distance.py +0 -0
  434. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_curvature.py +0 -0
  435. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_dask_cupy_gaps.py +0 -0
  436. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_dask_laziness.py +0 -0
  437. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_dask_task_names.py +0 -0
  438. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_dasymetric.py +0 -0
  439. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_dataset_support.py +0 -0
  440. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_datasets.py +0 -0
  441. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_diagnostics.py +0 -0
  442. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_diffusion.py +0 -0
  443. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_edge_detection.py +0 -0
  444. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_emerging_hotspots.py +0 -0
  445. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_erosion.py +0 -0
  446. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_fire.py +0 -0
  447. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_flood.py +0 -0
  448. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_focal.py +0 -0
  449. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_fused_overlap.py +0 -0
  450. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_geodesic_aspect.py +0 -0
  451. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_geodesic_slope.py +0 -0
  452. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_glcm.py +0 -0
  453. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_glcm_metric_order.py +0 -0
  454. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_gpu_rtx_has_rtx.py +0 -0
  455. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_gpu_rtx_memory.py +0 -0
  456. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_gpu_rtx_mesh.py +0 -0
  457. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_hillshade.py +0 -0
  458. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_hypsometric_integral.py +0 -0
  459. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_interpolate_vector.py +0 -0
  460. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_interpolation.py +0 -0
  461. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_kde.py +0 -0
  462. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_lite_crs.py +0 -0
  463. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_mahalanobis.py +0 -0
  464. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_mcda.py +0 -0
  465. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_min_observable_height.py +0 -0
  466. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_morphology.py +0 -0
  467. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_morphology_derived.py +0 -0
  468. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_multi_overlap.py +0 -0
  469. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_multispectral.py +0 -0
  470. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_normalize.py +0 -0
  471. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_northness_eastness.py +0 -0
  472. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_open_geotiff_coregister.py +0 -0
  473. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_open_geotiff_resampling.py +0 -0
  474. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_optional_shapely.py +0 -0
  475. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_pathfinding.py +0 -0
  476. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_perlin.py +0 -0
  477. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_polygon_clip.py +0 -0
  478. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_polygonize.py +0 -0
  479. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_polygonize_atol_rtol_backend_coverage_2026_05_27.py +0 -0
  480. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_polygonize_coverage_2026_05_19.py +0 -0
  481. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_polygonize_dask_row_batch_2608.py +0 -0
  482. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_polygonize_issue_2172.py +0 -0
  483. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_polygonize_issue_2583.py +0 -0
  484. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_polygonize_issue_2606.py +0 -0
  485. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_polygonize_issue_2666.py +0 -0
  486. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_polygonize_issue_2677.py +0 -0
  487. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_polygonize_issue_3292.py +0 -0
  488. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_polygonize_issue_3303.py +0 -0
  489. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_polygonize_mask_chunk_mismatch_3299.py +0 -0
  490. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_polygonize_mask_dtype_coverage_2026_05_29.py +0 -0
  491. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_preview.py +0 -0
  492. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_proximity.py +0 -0
  493. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_rasterize.py +0 -0
  494. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_rasterize_accuracy.py +0 -0
  495. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_rasterize_all_touched_dask_grid_line_3384.py +0 -0
  496. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_rasterize_all_touched_supercover_2169.py +0 -0
  497. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_rasterize_alloc_3107.py +0 -0
  498. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_rasterize_categorical_3482.py +0 -0
  499. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_rasterize_coregister_3492.py +0 -0
  500. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_rasterize_coverage_2026_05_17.py +0 -0
  501. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_rasterize_coverage_2026_05_21.py +0 -0
  502. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_rasterize_coverage_2026_05_27.py +0 -0
  503. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_rasterize_coverage_2026_05_29.py +0 -0
  504. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_rasterize_coverage_2026_06_09.py +0 -0
  505. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_rasterize_crs_mismatch_3058.py +0 -0
  506. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_rasterize_descending_x_2568.py +0 -0
  507. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_rasterize_dtype_annot_3291.py +0 -0
  508. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_rasterize_fill_dtype_3054.py +0 -0
  509. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_rasterize_geom_crs_3087.py +0 -0
  510. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_rasterize_gpu_alias_3089.py +0 -0
  511. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_rasterize_gpu_callable_warn_3057.py +0 -0
  512. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_rasterize_gpu_race_2167.py +0 -0
  513. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_rasterize_int_precision_3056.py +0 -0
  514. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_rasterize_linearring_3055.py +0 -0
  515. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_rasterize_lines_all_touched_3102.py +0 -0
  516. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_rasterize_merge_dedup_3304.py +0 -0
  517. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_rasterize_mixed_type_ordered_merge_3296.py +0 -0
  518. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_rasterize_nan_int_fill_2504.py +0 -0
  519. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_rasterize_nan_propagation_2255.py +0 -0
  520. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_rasterize_nonfinite_burn_3085.py +0 -0
  521. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_rasterize_nonfinite_burn_3088.py +0 -0
  522. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_rasterize_nonfinite_coords_3295.py +0 -0
  523. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_rasterize_partial_dims_2569.py +0 -0
  524. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_rasterize_props_hoist_2506.py +0 -0
  525. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_rasterize_resolution_exact_2573.py +0 -0
  526. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_rasterize_resolution_validation_2576.py +0 -0
  527. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_rasterize_signature_annot_2250.py +0 -0
  528. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_rasterize_signed_step_2566.py +0 -0
  529. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_rasterize_tile_props_slice_2020.py +0 -0
  530. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_rechunk_no_shuffle.py +0 -0
  531. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_reproject.py +0 -0
  532. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_reproject_coverage_2026_05_27.py +0 -0
  533. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_reproject_cupy_gate_2564.py +0 -0
  534. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_reproject_cupy_promotion_3281.py +0 -0
  535. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_reproject_inverse_kernels_3274.py +0 -0
  536. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_reproject_itrf_scale_3276.py +0 -0
  537. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_reproject_parallel_kernels_3141.py +0 -0
  538. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_reproject_pyproj_warning_3242.py +0 -0
  539. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_reproject_sphere_ellipsoid_guard_3275.py +0 -0
  540. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_reproject_streaming_3101.py +0 -0
  541. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_resample.py +0 -0
  542. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_resample_coverage_2026_05_27.py +0 -0
  543. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_resample_cupy_agg_fallback_2615.py +0 -0
  544. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_resample_input_validation_2574.py +0 -0
  545. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_resample_irregular_coords_2663.py +0 -0
  546. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_resample_nodata_dask_parity_3073.py +0 -0
  547. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_resample_signature_annot_2544.py +0 -0
  548. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_sieve.py +0 -0
  549. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_sieve_gdal_parity.py +0 -0
  550. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_sky_view_factor.py +0 -0
  551. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_slope.py +0 -0
  552. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_surface_distance.py +0 -0
  553. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_sweep_state_csv_merge_2754.py +0 -0
  554. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_templates.py +0 -0
  555. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_terrain_metrics.py +0 -0
  556. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_utils.py +0 -0
  557. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_validation.py +0 -0
  558. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_viewshed.py +0 -0
  559. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_visibility.py +0 -0
  560. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_zonal.py +0 -0
  561. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/tests/test_zonal_backend_coverage_2026_05_27.py +0 -0
  562. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/utils.py +0 -0
  563. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/validate.py +0 -0
  564. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/viewshed.py +0 -0
  565. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/visibility.py +0 -0
  566. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/worley.py +0 -0
  567. {xarray_spatial-0.10.14 → xarray_spatial-0.10.15}/xrspatial/zonal.py +0 -0
@@ -2,6 +2,12 @@
2
2
  -----------
3
3
 
4
4
 
5
+ ### Version 0.10.15 - 2026-06-29
6
+
7
+ #### Bug fixes and improvements
8
+ - terrain: map the generate_terrain dask backends over an empty skeleton so from_template grids no longer drop out of the task graph (#3575)
9
+
10
+
5
11
  ### Version 0.10.14 - 2026-06-28
6
12
 
7
13
  #### New features
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: xarray-spatial
3
- Version: 0.10.14
3
+ Version: 0.10.15
4
4
  Summary: xarray-based spatial analysis tools
5
5
  Home-page: https://github.com/xarray-contrib/xarray-spatial
6
6
  Author: Xarray-Spatial Developers
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: xarray-spatial
3
- Version: 0.10.14
3
+ Version: 0.10.15
4
4
  Summary: xarray-based spatial analysis tools
5
5
  Home-page: https://github.com/xarray-contrib/xarray-spatial
6
6
  Author: Xarray-Spatial Developers
@@ -1,7 +1,7 @@
1
1
  {
2
- "tag": "0.10.14",
2
+ "tag": "0.10.15",
3
3
  "distance": 0,
4
- "node": "g6383eada5f919f5761fab1f3e95fc565a3d402a0",
4
+ "node": "g76ebd7e2bb92d00c19f2b12b4bc1c3986edbb4ed",
5
5
  "dirty": false,
6
6
  "branch": "HEAD",
7
7
  "node_date": "2026-06-29"
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '0.10.14'
22
- __version_tuple__ = version_tuple = (0, 10, 14)
21
+ __version__ = version = '0.10.15'
22
+ __version_tuple__ = version_tuple = (0, 10, 15)
23
23
 
24
- __commit_id__ = commit_id = 'g6383eada5'
24
+ __commit_id__ = commit_id = 'g76ebd7e2b'
@@ -378,6 +378,13 @@ def _terrain_dask_numpy(data, seed, x_range_scaled, y_range_scaled, zfactor,
378
378
  """
379
379
  height, width = data.shape
380
380
 
381
+ # The chunk functions below regenerate every cell from coordinates and
382
+ # never read the incoming block values. Map over an uninitialised
383
+ # skeleton with the same shape/chunking so the (NaN-filled) template the
384
+ # caller passed in — e.g. from_template()'s da.full — drops out of the
385
+ # graph instead of being memset and then thrown away.
386
+ skeleton = da.empty_like(data, dtype=np.float32)
387
+
381
388
  # --- worley pre-pass: get global min/max to avoid per-chunk seams ---
382
389
  w_norm_range = None
383
390
  if worley_blend > 0:
@@ -417,7 +424,7 @@ def _terrain_dask_numpy(data, seed, x_range_scaled, y_range_scaled, zfactor,
417
424
  return _worley_numpy_xy(w_p, x_arr, y_arr)
418
425
 
419
426
  raw_worley = da.map_blocks(
420
- _chunk_worley_raw, data, dtype=np.float32,
427
+ _chunk_worley_raw, skeleton, dtype=np.float32,
421
428
  meta=np.array((), dtype=np.float32),
422
429
  )
423
430
  (raw_worley,) = dask.persist(raw_worley)
@@ -452,7 +459,7 @@ def _terrain_dask_numpy(data, seed, x_range_scaled, y_range_scaled, zfactor,
452
459
  out *= zfactor
453
460
  return out
454
461
 
455
- return da.map_blocks(_chunk_terrain, data, dtype=np.float32,
462
+ return da.map_blocks(_chunk_terrain, skeleton, dtype=np.float32,
456
463
  meta=np.array((), dtype=np.float32),
457
464
  **_dask_task_name_kwargs('xrspatial.terrain'))
458
465
 
@@ -634,9 +641,13 @@ def _terrain_dask_cupy(data, seed, x_range_scaled, y_range_scaled, zfactor,
634
641
  computes global worley noise range so normalization is consistent across
635
642
  chunk boundaries.
636
643
  """
637
- data = data * 0
638
644
  height, width = data.shape
639
645
 
646
+ # See _terrain_dask_numpy: the chunk functions regenerate every cell from
647
+ # coordinates and never read block values, so map over an uninitialised
648
+ # skeleton instead of materialising (and discarding) the template's fill.
649
+ skeleton = da.empty_like(data, dtype=cupy.float32)
650
+
640
651
  # --- worley pre-pass: get global min/max to avoid per-chunk seams ---
641
652
  w_norm_range = None
642
653
  if worley_blend > 0:
@@ -691,7 +702,7 @@ def _terrain_dask_cupy(data, seed, x_range_scaled, y_range_scaled, zfactor,
691
702
  return w_noise
692
703
 
693
704
  raw_worley = da.map_blocks(
694
- _chunk_worley_raw, data, dtype=cupy.float32,
705
+ _chunk_worley_raw, skeleton, dtype=cupy.float32,
695
706
  meta=cupy.array((), dtype=cupy.float32),
696
707
  )
697
708
  (raw_worley,) = dask.persist(raw_worley)
@@ -719,7 +730,7 @@ def _terrain_dask_cupy(data, seed, x_range_scaled, y_range_scaled, zfactor,
719
730
  )
720
731
  return out
721
732
 
722
- data = da.map_blocks(_chunk_terrain, data, dtype=cupy.float32,
733
+ data = da.map_blocks(_chunk_terrain, skeleton, dtype=cupy.float32,
723
734
  meta=cupy.array((), dtype=cupy.float32),
724
735
  **_dask_task_name_kwargs('xrspatial.terrain'))
725
736
 
@@ -530,6 +530,63 @@ def test_terrain_all_nan_template_dask_cupy_matches_numpy():
530
530
  rtol=1e-4, atol=1e-4)
531
531
 
532
532
 
533
+ # =====================================================================
534
+ # Issue #3574: the dask backends regenerate every cell from coordinates
535
+ # and must not materialize the template's values. Mapping over a
536
+ # da.empty_like skeleton drops the template (e.g. from_template's
537
+ # da.full(nan)) out of the graph entirely.
538
+ # =====================================================================
539
+
540
+ def _poisoned_template(backend='dask'):
541
+ """A dask template whose blocks raise if they are ever computed.
542
+
543
+ generate_terrain regenerates terrain from coordinates and never reads
544
+ these values, so its result must compute without tripping the poison.
545
+ """
546
+ def _boom(block):
547
+ raise AssertionError("template values were materialized")
548
+
549
+ if has_cuda_and_cupy() and 'cupy' in backend:
550
+ import cupy
551
+ base = da.zeros((50, 50), chunks=(10, 10), dtype=cupy.float32,
552
+ meta=cupy.array((), dtype=cupy.float32))
553
+ poisoned = da.map_blocks(_boom, base, dtype=cupy.float32,
554
+ meta=cupy.array((), dtype=cupy.float32))
555
+ else:
556
+ base = da.zeros((50, 50), chunks=(10, 10), dtype=np.float32)
557
+ poisoned = da.map_blocks(_boom, base, dtype=np.float32,
558
+ meta=np.array((), dtype=np.float32))
559
+ return xr.DataArray(poisoned, dims=['y', 'x'])
560
+
561
+
562
+ @dask_array_available
563
+ @pytest.mark.parametrize("worley_blend", [0.0, 0.2])
564
+ def test_terrain_dask_does_not_materialize_template(worley_blend):
565
+ """The template's values must never be read; mapping over an empty
566
+ skeleton keeps them out of the graph (both map_blocks call sites)."""
567
+ terrain = generate_terrain(_poisoned_template(), worley_blend=worley_blend)
568
+ result = terrain.compute() # raises if the template were materialized
569
+ assert np.isfinite(result.data).all()
570
+
571
+
572
+ @dask_array_available
573
+ def test_terrain_dask_skeleton_matches_numpy():
574
+ """Swapping the template for an empty skeleton must not change output."""
575
+ expected = generate_terrain(create_test_arr()).data
576
+ actual = generate_terrain(_poisoned_template()).compute().data
577
+ np.testing.assert_allclose(actual, expected, rtol=1e-5, atol=1e-7)
578
+
579
+
580
+ @cuda_and_cupy_available
581
+ @dask_array_available
582
+ @pytest.mark.parametrize("worley_blend", [0.0, 0.2])
583
+ def test_terrain_dask_cupy_does_not_materialize_template(worley_blend):
584
+ terrain = generate_terrain(_poisoned_template(backend='dask+cupy'),
585
+ worley_blend=worley_blend)
586
+ result = terrain.compute()
587
+ assert np.isfinite(result.data.get()).all()
588
+
589
+
533
590
  # ---------------------------------------------------------------------------
534
591
  # Fused numpy fast path (worley off) -- independent correctness anchor
535
592
  # ---------------------------------------------------------------------------