rio-tiler 6.4.1__tar.gz → 6.4.3__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.
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/PKG-INFO +2 -2
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/__init__.py +1 -1
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/io/rasterio.py +1 -1
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/utils.py +74 -30
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/.gitignore +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/AUTHORS.txt +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/LICENSE +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/README.md +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/pyproject.toml +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/__init__.py +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/accent.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/accent_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/afmhot.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/afmhot_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/algae.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/algae_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/amp.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/amp_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/autumn.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/autumn_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/balance.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/balance_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/binary.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/binary_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/blues.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/blues_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/bone.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/bone_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/brbg.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/brbg_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/brg.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/brg_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/bugn.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/bugn_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/bupu.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/bupu_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/bwr.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/bwr_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/cfastie.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/cividis.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/cividis_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/cmrmap.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/cmrmap_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/cool.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/cool_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/coolwarm.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/coolwarm_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/copper.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/copper_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/cubehelix.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/cubehelix_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/curl.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/curl_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/dark2.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/dark2_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/deep.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/deep_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/delta.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/delta_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/dense.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/dense_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/diff.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/diff_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/flag.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/flag_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/gist_earth.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/gist_earth_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/gist_gray.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/gist_gray_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/gist_heat.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/gist_heat_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/gist_ncar.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/gist_ncar_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/gist_rainbow.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/gist_rainbow_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/gist_stern.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/gist_stern_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/gist_yarg.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/gist_yarg_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/gnbu.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/gnbu_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/gnuplot.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/gnuplot2.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/gnuplot2_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/gnuplot_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/gray.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/gray_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/greens.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/greens_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/greys.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/greys_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/haline.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/haline_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/hot.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/hot_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/hsv.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/hsv_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/ice.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/ice_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/inferno.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/inferno_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/jet.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/jet_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/magma.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/magma_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/matter.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/matter_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/nipy_spectral.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/nipy_spectral_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/ocean.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/ocean_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/oranges.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/oranges_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/orrd.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/orrd_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/oxy.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/oxy_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/paired.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/paired_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/pastel1.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/pastel1_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/pastel2.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/pastel2_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/phase.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/phase_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/pink.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/pink_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/piyg.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/piyg_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/plasma.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/plasma_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/prgn.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/prgn_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/prism.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/prism_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/pubu.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/pubu_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/pubugn.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/pubugn_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/puor.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/puor_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/purd.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/purd_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/purples.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/purples_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/rain.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/rain_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/rainbow.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/rainbow_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/rdbu.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/rdbu_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/rdgy.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/rdgy_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/rdpu.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/rdpu_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/rdylbu.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/rdylbu_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/rdylgn.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/rdylgn_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/reds.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/reds_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/rplumbo.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/schwarzwald.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/seismic.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/seismic_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/set1.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/set1_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/set2.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/set2_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/set3.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/set3_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/solar.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/solar_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/spectral.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/spectral_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/speed.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/speed_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/spring.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/spring_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/summer.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/summer_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/tab10.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/tab10_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/tab20.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/tab20_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/tab20b.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/tab20b_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/tab20c.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/tab20c_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/tarn.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/tarn_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/tempo.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/tempo_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/terrain.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/terrain_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/thermal.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/thermal_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/topo.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/topo_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/turbid.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/turbid_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/turbo.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/turbo_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/twilight.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/twilight_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/twilight_shifted.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/twilight_shifted_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/viridis.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/viridis_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/winter.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/winter_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/wistia.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/wistia_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/ylgn.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/ylgn_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/ylgnbu.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/ylgnbu_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/ylorbr.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/ylorbr_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/ylorrd.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/cmap_data/ylorrd_r.npy +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/colormap.py +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/constants.py +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/errors.py +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/expression.py +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/io/__init__.py +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/io/base.py +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/io/stac.py +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/io/xarray.py +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/logger.py +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/models.py +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/mosaic/__init__.py +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/mosaic/methods/__init__.py +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/mosaic/methods/base.py +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/mosaic/methods/defaults.py +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/mosaic/reader.py +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/profiles.py +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/py.typed +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/reader.py +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/tasks.py +0 -0
- {rio_tiler-6.4.1 → rio_tiler-6.4.3}/rio_tiler/types.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.3
|
|
2
2
|
Name: rio-tiler
|
|
3
|
-
Version: 6.4.
|
|
3
|
+
Version: 6.4.3
|
|
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/
|
|
@@ -266,7 +266,7 @@ class Reader(BaseReader):
|
|
|
266
266
|
"height": self.dataset.height,
|
|
267
267
|
"overviews": self.dataset.overviews(1),
|
|
268
268
|
}
|
|
269
|
-
if self.dataset.scales[0]
|
|
269
|
+
if self.dataset.scales[0] != 1.0 or self.dataset.offsets[0] != 0.0:
|
|
270
270
|
meta.update(
|
|
271
271
|
{"scale": self.dataset.scales[0], "offset": self.dataset.offsets[0]}
|
|
272
272
|
)
|
|
@@ -33,6 +33,27 @@ def _chunks(my_list: Sequence, chuck_size: int) -> Generator[Sequence, None, Non
|
|
|
33
33
|
yield my_list[i : i + chuck_size]
|
|
34
34
|
|
|
35
35
|
|
|
36
|
+
# Ref: https://stackoverflow.com/posts/73905572
|
|
37
|
+
def _weighted_quantiles(
|
|
38
|
+
values: NDArray[numpy.floating],
|
|
39
|
+
weights: NDArray[numpy.floating],
|
|
40
|
+
quantiles: float = 0.5,
|
|
41
|
+
) -> float:
|
|
42
|
+
i = numpy.argsort(values)
|
|
43
|
+
c = numpy.cumsum(weights[i])
|
|
44
|
+
return float(values[i[numpy.searchsorted(c, numpy.array(quantiles) * c[-1])]])
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
# Ref: https://stackoverflow.com/questions/2413522
|
|
48
|
+
def _weighted_stdev(
|
|
49
|
+
values: NDArray[numpy.floating],
|
|
50
|
+
weights: NDArray[numpy.floating],
|
|
51
|
+
) -> float:
|
|
52
|
+
average = numpy.average(values, weights=weights)
|
|
53
|
+
variance = numpy.average((values - average) ** 2, weights=weights)
|
|
54
|
+
return float(math.sqrt(variance))
|
|
55
|
+
|
|
56
|
+
|
|
36
57
|
def get_array_statistics(
|
|
37
58
|
data: numpy.ma.MaskedArray,
|
|
38
59
|
categorical: bool = False,
|
|
@@ -85,25 +106,31 @@ def get_array_statistics(
|
|
|
85
106
|
percentiles = percentiles or [2, 98]
|
|
86
107
|
|
|
87
108
|
if len(data.shape) < 3:
|
|
88
|
-
data = numpy.expand_dims(data, axis=0)
|
|
109
|
+
data = numpy.ma.expand_dims(data, axis=0)
|
|
89
110
|
|
|
90
111
|
output: List[Dict[Any, Any]] = []
|
|
91
112
|
percentiles_names = [f"percentile_{int(p)}" for p in percentiles]
|
|
92
113
|
|
|
114
|
+
if coverage is not None:
|
|
115
|
+
assert coverage.shape == (
|
|
116
|
+
data.shape[1],
|
|
117
|
+
data.shape[2],
|
|
118
|
+
), f"Invalid shape ({coverage.shape}) for Coverage, expected {(data.shape[1], data.shape[2])}"
|
|
119
|
+
|
|
120
|
+
else:
|
|
121
|
+
coverage = numpy.ones((data.shape[1], data.shape[2]))
|
|
122
|
+
|
|
93
123
|
# Avoid non masked nan/inf values
|
|
94
124
|
numpy.ma.fix_invalid(data, copy=False)
|
|
95
125
|
|
|
96
126
|
for b in range(data.shape[0]):
|
|
97
|
-
|
|
127
|
+
data_comp = data[b].compressed()
|
|
128
|
+
|
|
129
|
+
keys, counts = numpy.unique(data_comp, return_counts=True)
|
|
98
130
|
|
|
99
131
|
valid_pixels = float(numpy.ma.count(data[b]))
|
|
100
132
|
masked_pixels = float(numpy.ma.count_masked(data[b]))
|
|
101
133
|
valid_percent = round((valid_pixels / data[b].size) * 100, 2)
|
|
102
|
-
info_px = {
|
|
103
|
-
"valid_pixels": valid_pixels,
|
|
104
|
-
"masked_pixels": masked_pixels,
|
|
105
|
-
"valid_percent": valid_percent,
|
|
106
|
-
}
|
|
107
134
|
|
|
108
135
|
if categorical:
|
|
109
136
|
out_dict = dict(zip(keys.tolist(), counts.tolist()))
|
|
@@ -115,28 +142,26 @@ def get_array_statistics(
|
|
|
115
142
|
h_keys,
|
|
116
143
|
]
|
|
117
144
|
else:
|
|
118
|
-
h_counts, h_keys = numpy.histogram(
|
|
145
|
+
h_counts, h_keys = numpy.histogram(data_comp, **kwargs)
|
|
119
146
|
histogram = [h_counts.tolist(), h_keys.tolist()]
|
|
120
147
|
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
else:
|
|
126
|
-
percentiles_values = (numpy.nan,) * len(percentiles_names)
|
|
127
|
-
|
|
128
|
-
if coverage is not None:
|
|
129
|
-
assert coverage.shape == (
|
|
130
|
-
data.shape[1],
|
|
131
|
-
data.shape[2],
|
|
132
|
-
), f"Invalid shape ({coverage.shape}) for Coverage, expected {(data.shape[1], data.shape[2])}"
|
|
133
|
-
|
|
134
|
-
array = data[b] * coverage
|
|
148
|
+
# Data coverage fractions
|
|
149
|
+
data_cov = data[b] * coverage
|
|
150
|
+
# Coverage Array + data mask
|
|
151
|
+
masked_coverage = numpy.ma.MaskedArray(coverage, mask=data_cov.mask)
|
|
135
152
|
|
|
153
|
+
if valid_pixels:
|
|
154
|
+
# TODO: when switching to numpy~=2.0
|
|
155
|
+
# percentiles_values = numpy.percentile(
|
|
156
|
+
# data_comp, percentiles, weights=coverage.flatten()
|
|
157
|
+
# ).tolist()
|
|
158
|
+
percentiles_values = [
|
|
159
|
+
_weighted_quantiles(data_comp, masked_coverage.compressed(), pp / 100.0)
|
|
160
|
+
for pp in percentiles
|
|
161
|
+
]
|
|
136
162
|
else:
|
|
137
|
-
|
|
163
|
+
percentiles_values = [numpy.nan] * len(percentiles_names)
|
|
138
164
|
|
|
139
|
-
count = array.count() if coverage is None else coverage.sum()
|
|
140
165
|
if valid_pixels:
|
|
141
166
|
majority = float(keys[counts.tolist().index(counts.max())].tolist())
|
|
142
167
|
minority = float(keys[counts.tolist().index(counts.min())].tolist())
|
|
@@ -144,21 +169,40 @@ def get_array_statistics(
|
|
|
144
169
|
majority = numpy.nan
|
|
145
170
|
minority = numpy.nan
|
|
146
171
|
|
|
172
|
+
_count = masked_coverage.sum()
|
|
173
|
+
_sum = data_cov.sum()
|
|
174
|
+
|
|
147
175
|
output.append(
|
|
148
176
|
{
|
|
177
|
+
# Minimum value, not taking coverage fractions into account.
|
|
149
178
|
"min": float(data[b].min()),
|
|
179
|
+
# Maximum value, not taking coverage fractions into account.
|
|
150
180
|
"max": float(data[b].max()),
|
|
151
|
-
|
|
152
|
-
"
|
|
153
|
-
|
|
154
|
-
"
|
|
155
|
-
|
|
181
|
+
# Mean value, weighted by the percent of each cell that is covered.
|
|
182
|
+
"mean": float(_sum / _count),
|
|
183
|
+
# Sum of all non-masked cell coverage fractions.
|
|
184
|
+
"count": float(_count),
|
|
185
|
+
# Sum of values, weighted by their coverage fractions.
|
|
186
|
+
"sum": float(_sum),
|
|
187
|
+
# Population standard deviation of cell values, taking into account coverage fraction.
|
|
188
|
+
"std": _weighted_stdev(data_comp, masked_coverage.compressed()),
|
|
189
|
+
# Median value of cells, weighted by the percent of each cell that is covered.
|
|
190
|
+
"median": _weighted_quantiles(data_comp, masked_coverage.compressed()),
|
|
191
|
+
# The value occupying the greatest number of cells.
|
|
156
192
|
"majority": majority,
|
|
193
|
+
# The value occupying the least number of cells.
|
|
157
194
|
"minority": minority,
|
|
195
|
+
# Unique values.
|
|
158
196
|
"unique": float(counts.size),
|
|
197
|
+
# quantiles
|
|
159
198
|
**dict(zip(percentiles_names, percentiles_values)),
|
|
160
199
|
"histogram": histogram,
|
|
161
|
-
|
|
200
|
+
# Number of non-masked cells, not taking coverage fractions into account.
|
|
201
|
+
"valid_pixels": valid_pixels,
|
|
202
|
+
# Number of masked cells, not taking coverage fractions into account.
|
|
203
|
+
"masked_pixels": masked_pixels,
|
|
204
|
+
# Percent of valid cells
|
|
205
|
+
"valid_percent": valid_percent,
|
|
162
206
|
}
|
|
163
207
|
)
|
|
164
208
|
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|