rio-tiler 7.4.0__tar.gz → 7.5.1__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 (243) hide show
  1. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/PKG-INFO +2 -1
  2. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/pyproject.toml +3 -2
  3. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/__init__.py +1 -1
  4. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/errors.py +4 -0
  5. rio_tiler-7.5.1/rio_tiler/experimental/__init__.py +10 -0
  6. rio_tiler-7.5.1/rio_tiler/experimental/vsifile.py +36 -0
  7. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/utils.py +34 -24
  8. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/.gitignore +0 -0
  9. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/AUTHORS.txt +0 -0
  10. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/LICENSE +0 -0
  11. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/README.md +0 -0
  12. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/__init__.py +0 -0
  13. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/accent.npy +0 -0
  14. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/accent_r.npy +0 -0
  15. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/afmhot.npy +0 -0
  16. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/afmhot_r.npy +0 -0
  17. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/algae.npy +0 -0
  18. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/algae_r.npy +0 -0
  19. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/amp.npy +0 -0
  20. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/amp_r.npy +0 -0
  21. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/autumn.npy +0 -0
  22. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/autumn_r.npy +0 -0
  23. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/balance.npy +0 -0
  24. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/balance_r.npy +0 -0
  25. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/binary.npy +0 -0
  26. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/binary_r.npy +0 -0
  27. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/blues.npy +0 -0
  28. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/blues_r.npy +0 -0
  29. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/bone.npy +0 -0
  30. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/bone_r.npy +0 -0
  31. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/brbg.npy +0 -0
  32. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/brbg_r.npy +0 -0
  33. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/brg.npy +0 -0
  34. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/brg_r.npy +0 -0
  35. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/bugn.npy +0 -0
  36. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/bugn_r.npy +0 -0
  37. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/bupu.npy +0 -0
  38. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/bupu_r.npy +0 -0
  39. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/bwr.npy +0 -0
  40. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/bwr_r.npy +0 -0
  41. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/cfastie.npy +0 -0
  42. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/cividis.npy +0 -0
  43. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/cividis_r.npy +0 -0
  44. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/cmrmap.npy +0 -0
  45. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/cmrmap_r.npy +0 -0
  46. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/cool.npy +0 -0
  47. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/cool_r.npy +0 -0
  48. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/coolwarm.npy +0 -0
  49. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/coolwarm_r.npy +0 -0
  50. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/copper.npy +0 -0
  51. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/copper_r.npy +0 -0
  52. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/cubehelix.npy +0 -0
  53. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/cubehelix_r.npy +0 -0
  54. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/curl.npy +0 -0
  55. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/curl_r.npy +0 -0
  56. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/dark2.npy +0 -0
  57. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/dark2_r.npy +0 -0
  58. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/deep.npy +0 -0
  59. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/deep_r.npy +0 -0
  60. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/delta.npy +0 -0
  61. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/delta_r.npy +0 -0
  62. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/dense.npy +0 -0
  63. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/dense_r.npy +0 -0
  64. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/diff.npy +0 -0
  65. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/diff_r.npy +0 -0
  66. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/flag.npy +0 -0
  67. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/flag_r.npy +0 -0
  68. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/gist_earth.npy +0 -0
  69. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/gist_earth_r.npy +0 -0
  70. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/gist_gray.npy +0 -0
  71. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/gist_gray_r.npy +0 -0
  72. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/gist_heat.npy +0 -0
  73. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/gist_heat_r.npy +0 -0
  74. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/gist_ncar.npy +0 -0
  75. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/gist_ncar_r.npy +0 -0
  76. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/gist_rainbow.npy +0 -0
  77. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/gist_rainbow_r.npy +0 -0
  78. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/gist_stern.npy +0 -0
  79. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/gist_stern_r.npy +0 -0
  80. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/gist_yarg.npy +0 -0
  81. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/gist_yarg_r.npy +0 -0
  82. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/gnbu.npy +0 -0
  83. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/gnbu_r.npy +0 -0
  84. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/gnuplot.npy +0 -0
  85. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/gnuplot2.npy +0 -0
  86. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/gnuplot2_r.npy +0 -0
  87. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/gnuplot_r.npy +0 -0
  88. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/gray.npy +0 -0
  89. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/gray_r.npy +0 -0
  90. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/greens.npy +0 -0
  91. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/greens_r.npy +0 -0
  92. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/greys.npy +0 -0
  93. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/greys_r.npy +0 -0
  94. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/haline.npy +0 -0
  95. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/haline_r.npy +0 -0
  96. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/hot.npy +0 -0
  97. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/hot_r.npy +0 -0
  98. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/hsv.npy +0 -0
  99. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/hsv_r.npy +0 -0
  100. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/ice.npy +0 -0
  101. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/ice_r.npy +0 -0
  102. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/inferno.npy +0 -0
  103. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/inferno_r.npy +0 -0
  104. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/jet.npy +0 -0
  105. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/jet_r.npy +0 -0
  106. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/magma.npy +0 -0
  107. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/magma_r.npy +0 -0
  108. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/matter.npy +0 -0
  109. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/matter_r.npy +0 -0
  110. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/nipy_spectral.npy +0 -0
  111. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/nipy_spectral_r.npy +0 -0
  112. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/ocean.npy +0 -0
  113. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/ocean_r.npy +0 -0
  114. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/oranges.npy +0 -0
  115. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/oranges_r.npy +0 -0
  116. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/orrd.npy +0 -0
  117. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/orrd_r.npy +0 -0
  118. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/oxy.npy +0 -0
  119. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/oxy_r.npy +0 -0
  120. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/paired.npy +0 -0
  121. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/paired_r.npy +0 -0
  122. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/pastel1.npy +0 -0
  123. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/pastel1_r.npy +0 -0
  124. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/pastel2.npy +0 -0
  125. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/pastel2_r.npy +0 -0
  126. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/phase.npy +0 -0
  127. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/phase_r.npy +0 -0
  128. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/pink.npy +0 -0
  129. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/pink_r.npy +0 -0
  130. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/piyg.npy +0 -0
  131. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/piyg_r.npy +0 -0
  132. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/plasma.npy +0 -0
  133. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/plasma_r.npy +0 -0
  134. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/prgn.npy +0 -0
  135. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/prgn_r.npy +0 -0
  136. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/prism.npy +0 -0
  137. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/prism_r.npy +0 -0
  138. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/pubu.npy +0 -0
  139. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/pubu_r.npy +0 -0
  140. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/pubugn.npy +0 -0
  141. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/pubugn_r.npy +0 -0
  142. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/puor.npy +0 -0
  143. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/puor_r.npy +0 -0
  144. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/purd.npy +0 -0
  145. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/purd_r.npy +0 -0
  146. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/purples.npy +0 -0
  147. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/purples_r.npy +0 -0
  148. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/rain.npy +0 -0
  149. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/rain_r.npy +0 -0
  150. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/rainbow.npy +0 -0
  151. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/rainbow_r.npy +0 -0
  152. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/rdbu.npy +0 -0
  153. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/rdbu_r.npy +0 -0
  154. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/rdgy.npy +0 -0
  155. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/rdgy_r.npy +0 -0
  156. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/rdpu.npy +0 -0
  157. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/rdpu_r.npy +0 -0
  158. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/rdylbu.npy +0 -0
  159. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/rdylbu_r.npy +0 -0
  160. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/rdylgn.npy +0 -0
  161. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/rdylgn_r.npy +0 -0
  162. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/reds.npy +0 -0
  163. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/reds_r.npy +0 -0
  164. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/rplumbo.npy +0 -0
  165. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/schwarzwald.npy +0 -0
  166. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/seismic.npy +0 -0
  167. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/seismic_r.npy +0 -0
  168. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/set1.npy +0 -0
  169. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/set1_r.npy +0 -0
  170. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/set2.npy +0 -0
  171. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/set2_r.npy +0 -0
  172. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/set3.npy +0 -0
  173. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/set3_r.npy +0 -0
  174. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/solar.npy +0 -0
  175. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/solar_r.npy +0 -0
  176. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/spectral.npy +0 -0
  177. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/spectral_r.npy +0 -0
  178. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/speed.npy +0 -0
  179. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/speed_r.npy +0 -0
  180. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/spring.npy +0 -0
  181. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/spring_r.npy +0 -0
  182. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/summer.npy +0 -0
  183. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/summer_r.npy +0 -0
  184. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/tab10.npy +0 -0
  185. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/tab10_r.npy +0 -0
  186. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/tab20.npy +0 -0
  187. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/tab20_r.npy +0 -0
  188. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/tab20b.npy +0 -0
  189. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/tab20b_r.npy +0 -0
  190. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/tab20c.npy +0 -0
  191. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/tab20c_r.npy +0 -0
  192. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/tarn.npy +0 -0
  193. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/tarn_r.npy +0 -0
  194. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/tempo.npy +0 -0
  195. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/tempo_r.npy +0 -0
  196. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/terrain.npy +0 -0
  197. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/terrain_r.npy +0 -0
  198. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/thermal.npy +0 -0
  199. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/thermal_r.npy +0 -0
  200. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/topo.npy +0 -0
  201. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/topo_r.npy +0 -0
  202. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/turbid.npy +0 -0
  203. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/turbid_r.npy +0 -0
  204. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/turbo.npy +0 -0
  205. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/turbo_r.npy +0 -0
  206. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/twilight.npy +0 -0
  207. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/twilight_r.npy +0 -0
  208. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/twilight_shifted.npy +0 -0
  209. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/twilight_shifted_r.npy +0 -0
  210. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/viridis.npy +0 -0
  211. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/viridis_r.npy +0 -0
  212. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/winter.npy +0 -0
  213. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/winter_r.npy +0 -0
  214. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/wistia.npy +0 -0
  215. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/wistia_r.npy +0 -0
  216. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/ylgn.npy +0 -0
  217. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/ylgn_r.npy +0 -0
  218. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/ylgnbu.npy +0 -0
  219. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/ylgnbu_r.npy +0 -0
  220. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/ylorbr.npy +0 -0
  221. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/ylorbr_r.npy +0 -0
  222. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/ylorrd.npy +0 -0
  223. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/cmap_data/ylorrd_r.npy +0 -0
  224. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/colormap.py +0 -0
  225. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/constants.py +0 -0
  226. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/expression.py +0 -0
  227. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/io/__init__.py +0 -0
  228. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/io/base.py +0 -0
  229. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/io/rasterio.py +0 -0
  230. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/io/stac.py +0 -0
  231. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/io/xarray.py +0 -0
  232. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/logger.py +0 -0
  233. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/models.py +0 -0
  234. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/mosaic/__init__.py +0 -0
  235. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/mosaic/methods/__init__.py +0 -0
  236. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/mosaic/methods/base.py +0 -0
  237. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/mosaic/methods/defaults.py +0 -0
  238. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/mosaic/reader.py +0 -0
  239. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/profiles.py +0 -0
  240. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/py.typed +0 -0
  241. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/reader.py +0 -0
  242. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/tasks.py +0 -0
  243. {rio_tiler-7.4.0 → rio_tiler-7.5.1}/rio_tiler/types.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rio-tiler
3
- Version: 7.4.0
3
+ Version: 7.5.1
4
4
  Summary: User friendly Rasterio plugin to read raster datasets.
5
5
  Project-URL: Homepage, https://cogeotiff.github.io/rio-tiler/
6
6
  Project-URL: Documentation, https://cogeotiff.github.io/rio-tiler/
@@ -83,6 +83,7 @@ Requires-Dist: morecantile<7.0,>=6.0; extra == 'test'
83
83
  Requires-Dist: pytest; extra == 'test'
84
84
  Requires-Dist: pytest-cov; extra == 'test'
85
85
  Requires-Dist: rioxarray; extra == 'test'
86
+ Requires-Dist: vsifile>=0.2; extra == 'test'
86
87
  Requires-Dist: xarray; extra == 'test'
87
88
  Provides-Extra: tilebench
88
89
  Requires-Dist: pytest; extra == 'tilebench'
@@ -38,7 +38,6 @@ dependencies = [
38
38
  test = [
39
39
  "pytest",
40
40
  "pytest-cov",
41
-
42
41
  # XarrayReader
43
42
  "xarray",
44
43
  "rioxarray",
@@ -47,6 +46,8 @@ test = [
47
46
  "boto3",
48
47
  # Some tests will fail with 5.0
49
48
  "morecantile>=6.0,<7.0",
49
+ # Experimental
50
+ "vsifile>=0.2",
50
51
  ]
51
52
 
52
53
  benchmark = [
@@ -160,7 +161,7 @@ exclude = [
160
161
  max-complexity = 14
161
162
 
162
163
  [tool.bumpversion]
163
- current_version = "7.4.0"
164
+ current_version = "7.5.1"
164
165
  search = "{current_version}"
165
166
  replace = "{new_version}"
166
167
  regex = false
@@ -1,6 +1,6 @@
1
1
  """rio-tiler."""
2
2
 
3
- __version__ = "7.4.0"
3
+ __version__ = "7.5.1"
4
4
 
5
5
  from . import ( # noqa
6
6
  colormap,
@@ -91,3 +91,7 @@ class MissingCRS(RioTilerError):
91
91
 
92
92
  class InvalidGeographicBounds(RioTilerError):
93
93
  """Invalid Geographic bounds."""
94
+
95
+
96
+ class RioTilerExperimentalWarning(UserWarning):
97
+ """A rio-tiler specific experimental functionality warning."""
@@ -0,0 +1,10 @@
1
+ """The "experimental" module of rio-tiler contains potential new features that are subject to change."""
2
+
3
+ import warnings
4
+
5
+ from rio_tiler.errors import RioTilerExperimentalWarning
6
+
7
+ warnings.warn(
8
+ "This module is experimental, its contents are subject to change and deprecation.",
9
+ category=RioTilerExperimentalWarning,
10
+ )
@@ -0,0 +1,36 @@
1
+ """rio_tiler.io.Reader with VSIFILE/Obstore Opener."""
2
+
3
+ from typing import Union
4
+
5
+ import attr
6
+ import rasterio
7
+ from rasterio.io import DatasetReader, DatasetWriter, MemoryFile
8
+ from rasterio.vrt import WarpedVRT
9
+
10
+ from rio_tiler.io import Reader
11
+
12
+ try:
13
+ import vsifile
14
+ from vsifile.rasterio import opener
15
+ except ImportError: # pragma: nocover
16
+ vsifile = None # type: ignore
17
+ opener = None # type: ignore
18
+
19
+
20
+ @attr.s
21
+ class VSIReader(Reader):
22
+ """Rasterio Reader with VSIFILE opener."""
23
+
24
+ dataset: Union[DatasetReader, DatasetWriter, MemoryFile, WarpedVRT] = attr.ib(
25
+ default=None, init=False
26
+ )
27
+
28
+ def __attrs_post_init__(self):
29
+ """Use vsifile.rasterio.opener as Python file opener."""
30
+ assert vsifile is not None, "VSIFILE must be installed to use VSIReader"
31
+
32
+ self.dataset = self._ctx_stack.enter_context(
33
+ rasterio.open(self.input, opener=opener)
34
+ )
35
+
36
+ super().__attrs_post_init__()
@@ -59,8 +59,8 @@ def _weighted_stdev(
59
59
  values: NDArray[numpy.floating],
60
60
  weights: NDArray[numpy.floating],
61
61
  ) -> float:
62
- average = numpy.average(values, weights=weights)
63
- variance = numpy.average((values - average) ** 2, weights=weights)
62
+ average = numpy.ma.average(values, weights=weights)
63
+ variance = numpy.ma.average((values - average) ** 2, weights=weights)
64
64
  return float(math.sqrt(variance))
65
65
 
66
66
 
@@ -174,35 +174,44 @@ def get_array_statistics(
174
174
  _weighted_quantiles(data_comp, masked_coverage.compressed(), pp / 100.0)
175
175
  for pp in percentiles
176
176
  ]
177
- else:
178
- percentiles_values = [numpy.nan] * len(percentiles_names)
179
-
180
- if valid_pixels:
181
177
  majority = float(keys[counts.tolist().index(counts.max())].tolist())
182
178
  minority = float(keys[counts.tolist().index(counts.min())].tolist())
179
+ std = _weighted_stdev(data_comp, masked_coverage.compressed())
180
+ med = _weighted_quantiles(data_comp, masked_coverage.compressed())
181
+ _min = float(data[b].min())
182
+ _max = float(data[b].max())
183
+ _mean = float(data_cov.sum() / masked_coverage.sum())
184
+ _count = float(masked_coverage.sum())
185
+ _sum = float(data_cov.sum())
186
+
183
187
  else:
188
+ percentiles_values = [numpy.nan] * len(percentiles_names)
184
189
  majority = numpy.nan
185
190
  minority = numpy.nan
186
-
187
- _count = masked_coverage.sum()
188
- _sum = data_cov.sum()
191
+ std = numpy.nan
192
+ med = numpy.nan
193
+ _min = numpy.nan
194
+ _max = numpy.nan
195
+ _count = 0
196
+ _sum = 0
197
+ _mean = numpy.nan
189
198
 
190
199
  output.append(
191
200
  {
192
201
  # Minimum value, not taking coverage fractions into account.
193
- "min": float(data[b].min()),
202
+ "min": _min,
194
203
  # Maximum value, not taking coverage fractions into account.
195
- "max": float(data[b].max()),
204
+ "max": _max,
196
205
  # Mean value, weighted by the percent of each cell that is covered.
197
- "mean": float(_sum / _count),
206
+ "mean": _mean,
198
207
  # Sum of all non-masked cell coverage fractions.
199
- "count": float(_count),
208
+ "count": _count,
200
209
  # Sum of values, weighted by their coverage fractions.
201
- "sum": float(_sum),
210
+ "sum": _sum,
202
211
  # Population standard deviation of cell values, taking into account coverage fraction.
203
- "std": _weighted_stdev(data_comp, masked_coverage.compressed()),
212
+ "std": std,
204
213
  # Median value of cells, weighted by the percent of each cell that is covered.
205
- "median": _weighted_quantiles(data_comp, masked_coverage.compressed()),
214
+ "median": med,
206
215
  # The value occupying the greatest number of cells.
207
216
  "majority": majority,
208
217
  # The value occupying the least number of cells.
@@ -773,14 +782,15 @@ def resize_array(
773
782
  category=NotGeoreferencedWarning,
774
783
  module="rasterio",
775
784
  )
776
- with rasterio.open(datasetname, "r+") as src:
777
- # if a 2D array is passed, using indexes=1 makes sure we return an 2D array
778
- indexes = 1 if len(data.shape) == 2 else None
779
- return src.read(
780
- out_shape=out_shape,
781
- indexes=indexes,
782
- resampling=Resampling[resampling_method],
783
- )
785
+ with rasterio.Env(GDAL_MEM_ENABLE_OPEN=True):
786
+ with rasterio.open(datasetname, "r+") as src:
787
+ # if a 2D array is passed, using indexes=1 makes sure we return an 2D array
788
+ indexes = 1 if len(data.shape) == 2 else None
789
+ return src.read(
790
+ out_shape=out_shape,
791
+ indexes=indexes,
792
+ resampling=Resampling[resampling_method],
793
+ )
784
794
 
785
795
 
786
796
  def normalize_bounds(bounds: BBox) -> BBox:
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes