rio-tiler 7.5.1__tar.gz → 7.6.0__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-7.5.1 → rio_tiler-7.6.0}/PKG-INFO +2 -2
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/pyproject.toml +2 -2
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/__init__.py +1 -1
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/io/rasterio.py +12 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/io/xarray.py +15 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/models.py +6 -2
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/reader.py +38 -6
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/.gitignore +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/AUTHORS.txt +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/LICENSE +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/README.md +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/__init__.py +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/accent.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/accent_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/afmhot.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/afmhot_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/algae.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/algae_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/amp.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/amp_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/autumn.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/autumn_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/balance.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/balance_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/binary.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/binary_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/blues.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/blues_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/bone.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/bone_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/brbg.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/brbg_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/brg.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/brg_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/bugn.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/bugn_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/bupu.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/bupu_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/bwr.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/bwr_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/cfastie.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/cividis.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/cividis_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/cmrmap.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/cmrmap_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/cool.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/cool_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/coolwarm.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/coolwarm_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/copper.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/copper_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/cubehelix.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/cubehelix_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/curl.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/curl_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/dark2.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/dark2_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/deep.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/deep_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/delta.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/delta_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/dense.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/dense_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/diff.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/diff_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/flag.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/flag_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/gist_earth.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/gist_earth_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/gist_gray.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/gist_gray_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/gist_heat.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/gist_heat_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/gist_ncar.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/gist_ncar_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/gist_rainbow.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/gist_rainbow_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/gist_stern.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/gist_stern_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/gist_yarg.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/gist_yarg_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/gnbu.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/gnbu_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/gnuplot.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/gnuplot2.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/gnuplot2_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/gnuplot_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/gray.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/gray_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/greens.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/greens_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/greys.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/greys_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/haline.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/haline_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/hot.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/hot_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/hsv.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/hsv_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/ice.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/ice_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/inferno.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/inferno_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/jet.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/jet_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/magma.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/magma_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/matter.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/matter_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/nipy_spectral.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/nipy_spectral_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/ocean.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/ocean_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/oranges.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/oranges_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/orrd.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/orrd_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/oxy.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/oxy_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/paired.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/paired_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/pastel1.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/pastel1_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/pastel2.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/pastel2_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/phase.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/phase_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/pink.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/pink_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/piyg.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/piyg_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/plasma.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/plasma_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/prgn.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/prgn_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/prism.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/prism_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/pubu.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/pubu_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/pubugn.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/pubugn_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/puor.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/puor_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/purd.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/purd_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/purples.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/purples_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/rain.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/rain_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/rainbow.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/rainbow_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/rdbu.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/rdbu_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/rdgy.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/rdgy_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/rdpu.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/rdpu_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/rdylbu.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/rdylbu_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/rdylgn.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/rdylgn_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/reds.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/reds_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/rplumbo.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/schwarzwald.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/seismic.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/seismic_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/set1.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/set1_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/set2.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/set2_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/set3.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/set3_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/solar.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/solar_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/spectral.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/spectral_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/speed.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/speed_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/spring.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/spring_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/summer.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/summer_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/tab10.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/tab10_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/tab20.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/tab20_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/tab20b.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/tab20b_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/tab20c.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/tab20c_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/tarn.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/tarn_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/tempo.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/tempo_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/terrain.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/terrain_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/thermal.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/thermal_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/topo.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/topo_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/turbid.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/turbid_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/turbo.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/turbo_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/twilight.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/twilight_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/twilight_shifted.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/twilight_shifted_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/viridis.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/viridis_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/winter.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/winter_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/wistia.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/wistia_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/ylgn.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/ylgn_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/ylgnbu.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/ylgnbu_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/ylorbr.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/ylorbr_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/ylorrd.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/cmap_data/ylorrd_r.npy +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/colormap.py +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/constants.py +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/errors.py +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/experimental/__init__.py +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/experimental/vsifile.py +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/expression.py +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/io/__init__.py +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/io/base.py +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/io/stac.py +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/logger.py +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/mosaic/__init__.py +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/mosaic/methods/__init__.py +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/mosaic/methods/base.py +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/mosaic/methods/defaults.py +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/mosaic/reader.py +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/profiles.py +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/py.typed +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/tasks.py +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/types.py +0 -0
- {rio_tiler-7.5.1 → rio_tiler-7.6.0}/rio_tiler/utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: rio-tiler
|
|
3
|
-
Version: 7.
|
|
3
|
+
Version: 7.6.0
|
|
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/
|
|
@@ -58,7 +58,7 @@ Requires-Dist: morecantile<7.0,>=5.0
|
|
|
58
58
|
Requires-Dist: numexpr
|
|
59
59
|
Requires-Dist: numpy
|
|
60
60
|
Requires-Dist: pydantic~=2.0
|
|
61
|
-
Requires-Dist: pystac
|
|
61
|
+
Requires-Dist: pystac<2.0,>=1.9
|
|
62
62
|
Requires-Dist: rasterio>=1.4.0
|
|
63
63
|
Requires-Dist: typing-extensions
|
|
64
64
|
Provides-Extra: benchmark
|
|
@@ -28,7 +28,7 @@ dependencies = [
|
|
|
28
28
|
"numpy",
|
|
29
29
|
"morecantile>=5.0,<7.0",
|
|
30
30
|
"pydantic~=2.0",
|
|
31
|
-
"pystac>=
|
|
31
|
+
"pystac>=1.9,<2.0",
|
|
32
32
|
"rasterio>=1.4.0",
|
|
33
33
|
"color-operations",
|
|
34
34
|
"typing-extensions",
|
|
@@ -161,7 +161,7 @@ exclude = [
|
|
|
161
161
|
max-complexity = 14
|
|
162
162
|
|
|
163
163
|
[tool.bumpversion]
|
|
164
|
-
current_version = "7.
|
|
164
|
+
current_version = "7.6.0"
|
|
165
165
|
search = "{current_version}"
|
|
166
166
|
replace = "{new_version}"
|
|
167
167
|
regex = false
|
|
@@ -638,6 +638,7 @@ class ImageReader(Reader):
|
|
|
638
638
|
indexes: Optional[Indexes] = None,
|
|
639
639
|
expression: Optional[str] = None,
|
|
640
640
|
force_binary_mask: bool = True,
|
|
641
|
+
out_dtype: Optional[Union[str, numpy.dtype]] = None,
|
|
641
642
|
resampling_method: RIOResampling = "nearest",
|
|
642
643
|
unscale: bool = False,
|
|
643
644
|
post_process: Optional[
|
|
@@ -675,6 +676,7 @@ class ImageReader(Reader):
|
|
|
675
676
|
indexes=indexes,
|
|
676
677
|
expression=expression,
|
|
677
678
|
force_binary_mask=force_binary_mask,
|
|
679
|
+
out_dtype=out_dtype,
|
|
678
680
|
resampling_method=resampling_method,
|
|
679
681
|
unscale=unscale,
|
|
680
682
|
post_process=post_process,
|
|
@@ -689,6 +691,7 @@ class ImageReader(Reader):
|
|
|
689
691
|
height: Optional[int] = None,
|
|
690
692
|
width: Optional[int] = None,
|
|
691
693
|
force_binary_mask: bool = True,
|
|
694
|
+
out_dtype: Optional[Union[str, numpy.dtype]] = None,
|
|
692
695
|
resampling_method: RIOResampling = "nearest",
|
|
693
696
|
unscale: bool = False,
|
|
694
697
|
post_process: Optional[
|
|
@@ -731,6 +734,7 @@ class ImageReader(Reader):
|
|
|
731
734
|
height=height,
|
|
732
735
|
indexes=indexes,
|
|
733
736
|
force_binary_mask=force_binary_mask,
|
|
737
|
+
out_dtype=out_dtype,
|
|
734
738
|
resampling_method=resampling_method,
|
|
735
739
|
unscale=unscale,
|
|
736
740
|
post_process=post_process,
|
|
@@ -748,6 +752,8 @@ class ImageReader(Reader):
|
|
|
748
752
|
y: float,
|
|
749
753
|
indexes: Optional[Indexes] = None,
|
|
750
754
|
expression: Optional[str] = None,
|
|
755
|
+
out_dtype: Optional[Union[str, numpy.dtype]] = None,
|
|
756
|
+
resampling_method: RIOResampling = "nearest",
|
|
751
757
|
unscale: bool = False,
|
|
752
758
|
post_process: Optional[
|
|
753
759
|
Callable[[numpy.ma.MaskedArray], numpy.ma.MaskedArray]
|
|
@@ -760,6 +766,7 @@ class ImageReader(Reader):
|
|
|
760
766
|
y (float): Y coordinate.
|
|
761
767
|
indexes (sequence of int or int, optional): Band indexes.
|
|
762
768
|
expression (str, optional): rio-tiler expression (e.g. b1/b2+b3).
|
|
769
|
+
resampling_method (RIOResampling, optional): RasterIO resampling algorithm. Defaults to `nearest`.
|
|
763
770
|
unscale (bool, optional): Apply 'scales' and 'offsets' on output data value. Defaults to `False`.
|
|
764
771
|
post_process (callable, optional): Function to apply on output data and mask values.
|
|
765
772
|
|
|
@@ -775,6 +782,8 @@ class ImageReader(Reader):
|
|
|
775
782
|
expression=expression,
|
|
776
783
|
unscale=unscale,
|
|
777
784
|
post_process=post_process,
|
|
785
|
+
out_dtype=out_dtype,
|
|
786
|
+
resampling_method=resampling_method,
|
|
778
787
|
window=Window(col_off=x, row_off=y, width=1, height=1),
|
|
779
788
|
)
|
|
780
789
|
|
|
@@ -784,6 +793,7 @@ class ImageReader(Reader):
|
|
|
784
793
|
coordinates=self.dataset.xy(x, y),
|
|
785
794
|
crs=self.dataset.crs,
|
|
786
795
|
band_names=img.band_names,
|
|
796
|
+
pixel_location=(x, y),
|
|
787
797
|
)
|
|
788
798
|
|
|
789
799
|
def feature( # type: ignore
|
|
@@ -795,6 +805,7 @@ class ImageReader(Reader):
|
|
|
795
805
|
height: Optional[int] = None,
|
|
796
806
|
width: Optional[int] = None,
|
|
797
807
|
force_binary_mask: bool = True,
|
|
808
|
+
out_dtype: Optional[Union[str, numpy.dtype]] = None,
|
|
798
809
|
resampling_method: RIOResampling = "nearest",
|
|
799
810
|
unscale: bool = False,
|
|
800
811
|
post_process: Optional[
|
|
@@ -814,6 +825,7 @@ class ImageReader(Reader):
|
|
|
814
825
|
height=height,
|
|
815
826
|
width=width,
|
|
816
827
|
force_binary_mask=force_binary_mask,
|
|
828
|
+
out_dtype=out_dtype,
|
|
817
829
|
resampling_method=resampling_method,
|
|
818
830
|
unscale=unscale,
|
|
819
831
|
post_process=post_process,
|
|
@@ -227,6 +227,7 @@ class XarrayReader(BaseReader):
|
|
|
227
227
|
auto_expand: bool = True,
|
|
228
228
|
nodata: Optional[NoData] = None,
|
|
229
229
|
indexes: Optional[Indexes] = None,
|
|
230
|
+
out_dtype: str | numpy.dtype | None = None,
|
|
230
231
|
**kwargs: Any,
|
|
231
232
|
) -> ImageData:
|
|
232
233
|
"""Read a Web Map tile from a dataset.
|
|
@@ -278,6 +279,8 @@ class XarrayReader(BaseReader):
|
|
|
278
279
|
stats = ((minv, maxv),) * da.rio.count
|
|
279
280
|
|
|
280
281
|
arr = da.to_masked_array()
|
|
282
|
+
if out_dtype:
|
|
283
|
+
arr = arr.astype(out_dtype)
|
|
281
284
|
arr.mask |= arr.data == da.rio.nodata
|
|
282
285
|
|
|
283
286
|
output_bounds = da.rio._unordered_bounds()
|
|
@@ -306,6 +309,7 @@ class XarrayReader(BaseReader):
|
|
|
306
309
|
height: Optional[int] = None,
|
|
307
310
|
width: Optional[int] = None,
|
|
308
311
|
resampling_method: RIOResampling = "nearest",
|
|
312
|
+
out_dtype: str | numpy.dtype | None = None,
|
|
309
313
|
**kwargs: Any,
|
|
310
314
|
) -> ImageData:
|
|
311
315
|
"""Read part of a dataset.
|
|
@@ -368,6 +372,8 @@ class XarrayReader(BaseReader):
|
|
|
368
372
|
stats = ((minv, maxv),) * da.rio.count
|
|
369
373
|
|
|
370
374
|
arr = da.to_masked_array()
|
|
375
|
+
if out_dtype:
|
|
376
|
+
arr = arr.astype(out_dtype)
|
|
371
377
|
arr.mask |= arr.data == da.rio.nodata
|
|
372
378
|
|
|
373
379
|
output_bounds = da.rio._unordered_bounds()
|
|
@@ -407,6 +413,7 @@ class XarrayReader(BaseReader):
|
|
|
407
413
|
dst_crs: Optional[CRS] = None,
|
|
408
414
|
reproject_method: WarpResampling = "nearest",
|
|
409
415
|
resampling_method: RIOResampling = "nearest",
|
|
416
|
+
out_dtype: str | numpy.dtype | None = None,
|
|
410
417
|
**kwargs: Any,
|
|
411
418
|
) -> ImageData:
|
|
412
419
|
"""Return a preview of a dataset.
|
|
@@ -458,6 +465,8 @@ class XarrayReader(BaseReader):
|
|
|
458
465
|
stats = ((minv, maxv),) * da.rio.count
|
|
459
466
|
|
|
460
467
|
arr = da.to_masked_array()
|
|
468
|
+
if out_dtype:
|
|
469
|
+
arr = arr.astype(out_dtype)
|
|
461
470
|
arr.mask |= arr.data == da.rio.nodata
|
|
462
471
|
|
|
463
472
|
output_bounds = da.rio._unordered_bounds()
|
|
@@ -494,6 +503,7 @@ class XarrayReader(BaseReader):
|
|
|
494
503
|
coord_crs: CRS = WGS84_CRS,
|
|
495
504
|
nodata: Optional[NoData] = None,
|
|
496
505
|
indexes: Optional[Indexes] = None,
|
|
506
|
+
out_dtype: str | numpy.dtype | None = None,
|
|
497
507
|
**kwargs: Any,
|
|
498
508
|
) -> PointData:
|
|
499
509
|
"""Read a pixel value from a dataset.
|
|
@@ -528,6 +538,8 @@ class XarrayReader(BaseReader):
|
|
|
528
538
|
else:
|
|
529
539
|
arr = da[:, int(y[0]), int(x[0])].to_masked_array()
|
|
530
540
|
|
|
541
|
+
if out_dtype:
|
|
542
|
+
arr = arr.astype(out_dtype)
|
|
531
543
|
arr.mask |= arr.data == da.rio.nodata
|
|
532
544
|
|
|
533
545
|
return PointData(
|
|
@@ -535,6 +547,7 @@ class XarrayReader(BaseReader):
|
|
|
535
547
|
coordinates=(lon, lat),
|
|
536
548
|
crs=coord_crs,
|
|
537
549
|
band_names=band_names,
|
|
550
|
+
pixel_location=(x, y),
|
|
538
551
|
)
|
|
539
552
|
|
|
540
553
|
def feature(
|
|
@@ -550,6 +563,7 @@ class XarrayReader(BaseReader):
|
|
|
550
563
|
height: Optional[int] = None,
|
|
551
564
|
width: Optional[int] = None,
|
|
552
565
|
resampling_method: RIOResampling = "nearest",
|
|
566
|
+
out_dtype: str | numpy.dtype | None = None,
|
|
553
567
|
**kwargs: Any,
|
|
554
568
|
) -> ImageData:
|
|
555
569
|
"""Read part of a dataset defined by a geojson feature.
|
|
@@ -589,6 +603,7 @@ class XarrayReader(BaseReader):
|
|
|
589
603
|
height=height,
|
|
590
604
|
reproject_method=reproject_method,
|
|
591
605
|
resampling_method=resampling_method,
|
|
606
|
+
out_dtype=out_dtype,
|
|
592
607
|
)
|
|
593
608
|
|
|
594
609
|
if dst_crs != shape_crs:
|
|
@@ -158,6 +158,9 @@ class PointData:
|
|
|
158
158
|
crs: Optional[CRS] = attr.ib(default=None, kw_only=True)
|
|
159
159
|
assets: Optional[List] = attr.ib(default=None, kw_only=True)
|
|
160
160
|
metadata: Optional[Dict] = attr.ib(factory=dict, kw_only=True)
|
|
161
|
+
pixel_location: Optional[Tuple[NumType, NumType]] = attr.ib(
|
|
162
|
+
default=None, kw_only=True
|
|
163
|
+
)
|
|
161
164
|
|
|
162
165
|
@array.validator
|
|
163
166
|
def _validate_data(self, attribute, value):
|
|
@@ -241,9 +244,9 @@ class PointData:
|
|
|
241
244
|
return cls(
|
|
242
245
|
arr,
|
|
243
246
|
assets=assets,
|
|
244
|
-
crs=data[0].crs,
|
|
245
|
-
coordinates=data[0].coordinates,
|
|
246
247
|
band_names=band_names,
|
|
248
|
+
coordinates=data[0].coordinates,
|
|
249
|
+
crs=data[0].crs,
|
|
247
250
|
metadata=metadata,
|
|
248
251
|
)
|
|
249
252
|
|
|
@@ -262,6 +265,7 @@ class PointData:
|
|
|
262
265
|
coordinates=self.coordinates,
|
|
263
266
|
band_names=blocks,
|
|
264
267
|
metadata=self.metadata,
|
|
268
|
+
pixel_location=self.pixel_location,
|
|
265
269
|
)
|
|
266
270
|
|
|
267
271
|
|
|
@@ -11,7 +11,7 @@ from rasterio import windows
|
|
|
11
11
|
from rasterio.crs import CRS
|
|
12
12
|
from rasterio.enums import ColorInterp, Resampling
|
|
13
13
|
from rasterio.io import DatasetReader, DatasetWriter
|
|
14
|
-
from rasterio.transform import array_bounds
|
|
14
|
+
from rasterio.transform import array_bounds, rowcol
|
|
15
15
|
from rasterio.vrt import WarpedVRT
|
|
16
16
|
from rasterio.warp import transform as transform_coords
|
|
17
17
|
from rasterio.warp import transform_bounds
|
|
@@ -94,6 +94,7 @@ def read(
|
|
|
94
94
|
force_binary_mask: bool = True,
|
|
95
95
|
nodata: Optional[NoData] = None,
|
|
96
96
|
vrt_options: Optional[Dict] = None,
|
|
97
|
+
out_dtype: Optional[Union[str, numpy.dtype]] = None,
|
|
97
98
|
resampling_method: RIOResampling = "nearest",
|
|
98
99
|
reproject_method: WarpResampling = "nearest",
|
|
99
100
|
unscale: bool = False,
|
|
@@ -151,7 +152,6 @@ def read(
|
|
|
151
152
|
"nodata": nodata,
|
|
152
153
|
"add_alpha": False,
|
|
153
154
|
"src_nodata": nodata,
|
|
154
|
-
"dtype": src_dst.dtypes[0],
|
|
155
155
|
}
|
|
156
156
|
)
|
|
157
157
|
|
|
@@ -204,6 +204,7 @@ def read(
|
|
|
204
204
|
),
|
|
205
205
|
resampling=io_resampling,
|
|
206
206
|
boundless=boundless,
|
|
207
|
+
out_dtype=out_dtype,
|
|
207
208
|
)
|
|
208
209
|
mask = dataset.read(
|
|
209
210
|
indexes=(alpha_idx,),
|
|
@@ -211,6 +212,7 @@ def read(
|
|
|
211
212
|
out_shape=(1, height, width) if height and width else None,
|
|
212
213
|
resampling=io_resampling,
|
|
213
214
|
boundless=boundless,
|
|
215
|
+
out_dtype=out_dtype,
|
|
214
216
|
)
|
|
215
217
|
data = numpy.ma.MaskedArray(values)
|
|
216
218
|
data.mask = ~mask.astype("bool")
|
|
@@ -223,6 +225,7 @@ def read(
|
|
|
223
225
|
out_shape=(len(idx), height, width) if height and width else None,
|
|
224
226
|
resampling=io_resampling,
|
|
225
227
|
boundless=boundless,
|
|
228
|
+
out_dtype=out_dtype,
|
|
226
229
|
)
|
|
227
230
|
mask = ~values[-1].astype("bool")
|
|
228
231
|
data = numpy.ma.MaskedArray(values[0:-1])
|
|
@@ -237,6 +240,7 @@ def read(
|
|
|
237
240
|
boundless=boundless,
|
|
238
241
|
masked=True,
|
|
239
242
|
fill_value=nodata,
|
|
243
|
+
out_dtype=out_dtype,
|
|
240
244
|
)
|
|
241
245
|
|
|
242
246
|
# if data has Nodata then we simply make sure the mask == the nodata
|
|
@@ -308,6 +312,7 @@ def part(
|
|
|
308
312
|
force_binary_mask: bool = True,
|
|
309
313
|
nodata: Optional[NoData] = None,
|
|
310
314
|
vrt_options: Optional[Dict] = None,
|
|
315
|
+
out_dtype: Optional[Union[str, numpy.dtype]] = None,
|
|
311
316
|
align_bounds_with_dataset: bool = False,
|
|
312
317
|
resampling_method: RIOResampling = "nearest",
|
|
313
318
|
reproject_method: WarpResampling = "nearest",
|
|
@@ -430,6 +435,7 @@ def part(
|
|
|
430
435
|
window=window,
|
|
431
436
|
nodata=nodata,
|
|
432
437
|
vrt_options=vrt_params,
|
|
438
|
+
out_dtype=out_dtype,
|
|
433
439
|
resampling_method=resampling_method,
|
|
434
440
|
reproject_method=reproject_method,
|
|
435
441
|
force_binary_mask=force_binary_mask,
|
|
@@ -467,6 +473,7 @@ def part(
|
|
|
467
473
|
height=height,
|
|
468
474
|
window=window,
|
|
469
475
|
nodata=nodata,
|
|
476
|
+
out_dtype=out_dtype,
|
|
470
477
|
resampling_method=resampling_method,
|
|
471
478
|
reproject_method=reproject_method,
|
|
472
479
|
force_binary_mask=force_binary_mask,
|
|
@@ -490,6 +497,7 @@ def part(
|
|
|
490
497
|
height=height,
|
|
491
498
|
window=window,
|
|
492
499
|
nodata=nodata,
|
|
500
|
+
out_dtype=out_dtype,
|
|
493
501
|
resampling_method=resampling_method,
|
|
494
502
|
reproject_method=reproject_method,
|
|
495
503
|
force_binary_mask=force_binary_mask,
|
|
@@ -506,8 +514,10 @@ def point(
|
|
|
506
514
|
force_binary_mask: bool = True,
|
|
507
515
|
nodata: Optional[NoData] = None,
|
|
508
516
|
vrt_options: Optional[Dict] = None,
|
|
517
|
+
out_dtype: Optional[Union[str, numpy.dtype]] = None,
|
|
509
518
|
resampling_method: RIOResampling = "nearest",
|
|
510
519
|
reproject_method: WarpResampling = "nearest",
|
|
520
|
+
interpolate: bool = False,
|
|
511
521
|
unscale: bool = False,
|
|
512
522
|
post_process: Optional[Callable[[numpy.ma.MaskedArray], numpy.ma.MaskedArray]] = None,
|
|
513
523
|
) -> PointData:
|
|
@@ -520,8 +530,9 @@ def point(
|
|
|
520
530
|
coord_crs (rasterio.crs.CRS, optional): Coordinate Reference System of the input coords. Defaults to `epsg:4326`.
|
|
521
531
|
nodata (int or float, optional): Overwrite dataset internal nodata value.
|
|
522
532
|
vrt_options (dict, optional): Options to be passed to the rasterio.warp.WarpedVRT class.
|
|
523
|
-
resampling_method (RIOResampling, optional): RasterIO resampling algorithm. Defaults to `nearest`.
|
|
533
|
+
resampling_method (RIOResampling, optional): RasterIO resampling algorithm. Only used when `interpolate=True`. Defaults to `nearest`.
|
|
524
534
|
reproject_method (WarpResampling, optional): WarpKernel resampling algorithm. Defaults to `nearest`.
|
|
535
|
+
interpolate (bool, optional): Interpolate pixels around the coordinates. Defaults to `False`.
|
|
525
536
|
unscale (bool, optional): Apply 'scales' and 'offsets' on output data value. Defaults to `False`.
|
|
526
537
|
post_process (callable, optional): Function to apply on output data and mask values.
|
|
527
538
|
|
|
@@ -537,6 +548,7 @@ def point(
|
|
|
537
548
|
vrt_params = {
|
|
538
549
|
"add_alpha": True,
|
|
539
550
|
"resampling": Resampling[reproject_method],
|
|
551
|
+
"dtype": src_dst.dtypes[0],
|
|
540
552
|
}
|
|
541
553
|
nodata = nodata if nodata is not None else src_dst.nodata
|
|
542
554
|
if nodata is not None:
|
|
@@ -580,11 +592,30 @@ def point(
|
|
|
580
592
|
):
|
|
581
593
|
raise PointOutsideBounds("Point is outside dataset bounds")
|
|
582
594
|
|
|
583
|
-
|
|
595
|
+
if interpolate:
|
|
596
|
+
# Ref: https://github.com/cogeotiff/rio-tiler/issues/793
|
|
597
|
+
# https://github.com/OSGeo/gdal/blob/a3d68b069e6b3676ba437faca5dca6ae2076ce24/swig/python/gdal-utils/osgeo_utils/samples/gdallocationinfo.py#L185-L197
|
|
598
|
+
rows, cols = rowcol(dataset.transform, xs=[lon], ys=[lat], op=lambda x: x)
|
|
599
|
+
row, col = float(rows[0]), float(cols[0])
|
|
600
|
+
row_off, col_off = row - 0.5, col - 0.5
|
|
601
|
+
|
|
602
|
+
else:
|
|
603
|
+
if resampling_method != "nearest":
|
|
604
|
+
warnings.warn(
|
|
605
|
+
f"{resampling_method} resampling will be ignored when `interpolate=False`.",
|
|
606
|
+
UserWarning,
|
|
607
|
+
)
|
|
608
|
+
|
|
609
|
+
row, col = dataset.index(lon, lat)
|
|
610
|
+
row_off, col_off = row, col
|
|
611
|
+
|
|
612
|
+
window = windows.Window(row_off=row_off, col_off=col_off, width=1, height=1)
|
|
613
|
+
|
|
584
614
|
img = read(
|
|
585
615
|
dataset,
|
|
586
616
|
indexes=indexes,
|
|
587
|
-
window=
|
|
617
|
+
window=window,
|
|
618
|
+
out_dtype=out_dtype,
|
|
588
619
|
resampling_method=resampling_method,
|
|
589
620
|
force_binary_mask=force_binary_mask,
|
|
590
621
|
unscale=unscale,
|
|
@@ -593,8 +624,9 @@ def point(
|
|
|
593
624
|
|
|
594
625
|
return PointData(
|
|
595
626
|
img.array[:, 0, 0],
|
|
627
|
+
band_names=img.band_names,
|
|
596
628
|
coordinates=coordinates,
|
|
597
629
|
crs=coord_crs,
|
|
598
|
-
band_names=img.band_names,
|
|
599
630
|
metadata=dataset.tags(),
|
|
631
|
+
pixel_location=(col, row),
|
|
600
632
|
)
|
|
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
|