A rio-tiler插件,用于处理STAC项目
项目描述
stac-tiler
A rio-tiler插件,用于处理STAC项目
安装
$ pip install pip -U
$ pip install stac-tiler --pre # stac-tiler is in pre-release 0.0rc1 version
# Or using source
$ pip install git+http://github.com/developmentseed/stac-tiler
如何使用
stac-tiler基于rio-tiler-crs和morecantile。
文档
class STACReader:
"""
STAC + Cloud Optimized GeoTIFF Reader.
Examples
--------
with STACReader(stac_path) as stac:
stac.tile(...)
my_stac = {
"type": "Feature",
"stac_version": "1.0.0",
...
}
with STACReader(None, item=my_stac) as stac:
stac.tile(...)
Attributes
----------
filepath: str
STAC Item path, URL or S3 URL.
item: Dict, optional
STAC Item dict.
tms: morecantile.TileMatrixSet, optional
TileMatrixSet to use, default is WebMercatorQuad.
minzoom: int, optional
Set minzoom for the tiles.
minzoom: int, optional
Set maxzoom for the tiles.
include_assets: Set, optional
Only accept some assets.
exclude_assets: Set, optional
Exclude some assets.
include_asset_types: Set, optional
Only include some assets base on their type
include_asset_types: Set, optional
Exclude some assets base on their type
Properties
----------
bounds: tuple[float]
STAC bounds in WGS84 crs.
center: tuple[float, float, int]
STAC item center + minzoom
Methods
-------
tile(0, 0, 0, assets="B01", expression="
B01/B02")
Read a map tile from the COG.
part((0,10,0,10), assets="B01", expression="
B1/B20", max_size=1024)
Read part of the COG.
preview(assets="B01", max_size=1024)
Read preview of the COG.
point((10, 10), assets="B01")
Read a point value from the COG.
stats(assets="B01", pmin=5, pmax=95)
Get Raster statistics.
info(assets="B01")
Get Assets raster info.
metadata(assets="B01", pmin=5, pmax=95)
info + stats
"""
- STACReader.tile():从STAC资产中读取地图瓦片
with STACReader("stac.json") as stac:
tile, mask = stac.tile(1, 2, 3, tilesize=256, assets=["red", "green"])
# With expression
with STACReader("stac.json") as stac:
tile, mask = cog.tile(1, 2, 3, tilesize=256, expression="red/green")
- STACReader.part():读取STAC资产的一部分
with STACReader("stac.json") as stac:
data, mask = stac.part((10, 10, 20, 20), assets=["red", "green"])
# Limit output size (default is set to 1024)
with STACReader("stac.json") as stac:
data, mask = stac.part((10, 10, 20, 20), max_size=2000, assets=["red", "green"])
# Read high resolution
with STACReader("stac.json") as stac:
data, mask = stac.part((10, 10, 20, 20), max_size=None, assets=["red", "green"])
# With expression
with STACReader("stac.json") as stac:
data, mask = stac.part((10, 10, 20, 20), expression="red/green")
- STACReader.preview():读取STAC资产的预览
with STACReader("stac.json") as stac:
data, mask = stac.preview(assets=["red", "green"])
# With expression
with STACReader("stac.json") as stac:
data, mask = stac.preview(expression="red/green")
- STACReader.point():读取STAC资产的点值
with STACReader("stac.json") as stac:
pts = stac.point(-100, 25, assets=["red", "green"])
# With expression
with STACReader("stac.json") as stac:
pts = stac.point(-100, 25, expression="red/green")
- STACReader.info():返回STAC资产的简单元数据
with STACReader("stac.json") as stac:
info = stac.info("B01")
{
"B01": {
"bounds": [23.10607624352815, 31.50517374437416, 24.296464503939944, 32.51933487169619],
"center": [23.701270373734047, 32.012254308035175, 8],
"minzoom": 8,
"maxzoom": 11,
"band_metadata": [[1, {}]],
"band_descriptions": [[1, "band1"]],
"dtype": "uint16",
"colorinterp": ["gray"],
"nodata_type": "Nodata"
}
}
- STACReader.stats():返回STAC资产的统计信息(最小值/最大值/标准差)
with STACReader("stac.json") as stac:
print(stac.stats(["B01"]))
{
"B01": {
"1": {
"pc": [
324,
5046
],
"min": 133,
"max": 8582,
"std": 1230.6977195618235,
"histogram": [
[
199042, 178438, 188457, 118369, 57544, 20622, 9275, 2885, 761, 146
],
[
133, 977.9, 1822.8, 2667.7, 3512.6, 4357.5, 5202.4, 6047.3, 6892.2, 7737.099999999999, 8582
]
]
}
}
}
- STACReader.metadata():返回STAC资产的详细信息及统计信息
with STACReader("stac.json") as stac:
print(stac.metadata(["B01"], pmin=5, pmax=95))
{
"B01": {
"bounds": [23.10607624352815, 31.50517374437416, 24.296464503939944, 32.51933487169619],
"center": [23.701270373734047, 32.012254308035175, 8],
"minzoom": 8,
"maxzoom": 11,
"band_metadata": [[1, {}]],
"band_descriptions": [[1, "band1"]],
"dtype": "uint16",
"colorinterp": ["gray"],
"nodata_type": "Nodata"
"statistics": {
"1": {
"pc": [
324,
5046
],
"min": 133,
"max": 8582,
"std": 1230.6977195618235,
"histogram": [
[
199042, 178438, 188457, 118369, 57544, 20622, 9275, 2885, 761, 146
],
[
133, 977.9, 1822.8, 2667.7, 3512.6, 4357.5, 5202.4, 6047.3, 6892.2, 7737.099999999999, 8582
]
]
}
}
}
贡献与发展
问题和pull请求非常欢迎。
开发安装
$ git clone https://github.com/developmentseed/stac-tiler.git
$ cd stac-tiler
$ pip install -e .[dev]
Python >=3.7
此仓库设置使用pre-commit
在提交新代码时运行isort、flake8、pydocstring、black("无妥协的Python代码格式化器")和mypy。
$ pre-commit install
$ git add .
$ git commit -m'my change'
isort....................................................................Passed
black....................................................................Passed
Flake8...................................................................Passed
Verifying PEP257 Compliance..............................................Passed
mypy.....................................................................Passed
$ git push origin
项目详情
关闭
stac-tiler-0.0rc2.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 77f83e5fb645ef37b42581a030527638d20847efc2a0b13ed40f29b4bef36fd5 |
|
MD5 | 50cc1406808b0ff7beb564109fbfd132 |
|
BLAKE2b-256 | 909b9d8a090e07019d3b9f6874088150d3e5c258d7b804a121b2df36d86ed4d7 |