用于与Tilesets API交互和准备数据的命令行界面
项目描述
tilesets-cli
用于与Mapbox瓦片服务交互和准备数据的命令行界面。
📚 如果这里没有回答您的问题,请参阅完整的Mapbox瓦片服务文档。
贡献
CONTRIBUTING.md 包含有关发布流程和运行测试的信息。 :raised_hands
安装
需求
- Python >= 3.6(可以通过virtualenv安装)
- 推荐: virtualenv / virtualenvwrapper
基本安装
pip install mapbox-tilesets
将安装除 estimate-area
之外的所有内容。
安装可选的 estimate-area
命令
如果您使用的是x86 Mac或Linux机器,请运行: pip install 'mapbox-tilesets[estimate-area]'
否则,您需要安装一些依赖项。
arm64 MacOS
如果您在arm64 Mac(例如,带有M1芯片的Mac)上,您首先需要安装 GDAL。在Mac上,一种简单的方法是使用 Homebrew
$ brew install gdal
...
$ pip install 'mapbox-tilesets[estimate-area]'
Windows
注意,目前不官方支持Windows。
Windows用户需要安装 GDAL 和 rasterio。然后 pip install 'mapbox-tilesets[estimate-area]'
Mapbox访问令牌
为了使用瓦片集端点,您需要一个包含tilesets:write
、tilesets:read
和tilesets:list
权限的Mapbox访问令牌。这是一个秘密令牌,因此请不要公开分享!
您可以通过--token
标志将Mapbox访问令牌传递给每个命令,或者将其作为环境变量导出。可接受的值有:
MAPBOX_ACCESS_TOKEN
MapboxAccessToken
使用export
设置环境变量
export MAPBOX_ACCESS_TOKEN=my.token
命令
- 瓦片集来源
- 食谱
- 瓦片集
- 活动
upload-source
tilesets upload-source <username> <source_id> <file>
将GeoJSON文件上传到源以进行瓦片处理。接受行分隔的GeoJSON或GeoJSON要素集合作为文件或通过stdin
。CLI在上传前自动将数据转换为行分隔的GeoJSON。可以使用它向源添加数据或使用--replace
标志替换源中的所有数据。
请注意,如果您的源数据是FeatureCollection,则tilesets
必须在将其上传到Tilesets API之前将其全部读入内存,并将其拆分为单独的要素。强烈建议您提供行分隔的GeoJSON格式的数据,尤其是如果它很大。
注意:对于上传时间非常长的较大文件,请尝试使用--no-validation
标志。
标志
--no-validation
[可选]: 在上传前不验证源数据--replace
[可选]: 删除所有现有源数据并用文件中的数据替换--quiet
[可选]: 不显示上传进度条
用法
# single file
tilesets upload-source <username> <source_id> ./file.geojson
# multiple files
tilesets upload-source <username> <source_id> file-1.geojson file-4.geojson
# directory of files
# Reading from a directory will not distinguish between GeoJSON files and non GeoJSON files. All source files will be run through our validator unless you pass the `--no-validation` flag.
tilesets upload-source <username> <source_id> ./path/to/multiple/files/
upload-raster-source
tilesets upload-raster-source <username> <source_id> <file>
将光栅文件上传到源以进行瓦片处理。目前接受GeoTIFF、NetCDF和GRIB格式。可以使用它向源添加数据或使用--replace
标志替换源中的所有数据。
有关支持的格式和使用光栅源的信息,请参阅此处。
标志
--replace
[可选]: 删除所有现有源数据并用文件中的数据替换--quiet
[可选]: 不显示上传进度条
用法
# single file
tilesets upload-raster-source <username> <source_id> ./file.tif
# multiple files
tilesets upload-raster-source <username> <source_id> file-1.tif file-4.tif
已弃用 add-source
警告:add-source仅用于维护旧版目的。请改用upload-source
命令。
tilesets add-source <username> <source_id> <file>
将GeoJSON文件添加到源以进行瓦片处理。接受行分隔的GeoJSON或GeoJSON要素集合作为文件或通过stdin
。CLI在上传前自动将数据转换为行分隔的GeoJSON。
请注意,如果您的源数据是FeatureCollection,则tilesets
必须在将其上传到Tilesets API之前将其全部读入内存,并将其拆分为单独的要素。强烈建议您提供行分隔的GeoJSON格式的数据,尤其是如果它很大。
标志
--no-validation
[可选]: 在上传前不验证源数据--quiet
[可选]: 不显示上传进度条
用法
# single file
tilesets add-source <username> <source_id> ./file.geojson
# multiple files
tilesets add-source <username> <source_id> file-1.geojson file-4.geojson
# directory of files
# Reading from a directory will not distinguish between GeoJSON files and non GeoJSON files. All source files will be run through our validator unless you pass the `--no-validation` flag.
tilesets add-source <username> <source_id> ./path/to/multiple/files/
validate-source
tilesets validate-source <path>
在本地验证行分隔的GeoJSON源文件。示例错误输出
Invalid line delimited geojson.
view-source
tilesets view-source <username> <source_id>
获取瓦片集来源的信息,例如文件数量、字节数和mapbox://协议格式中的ID。
list-sources
tilesets list-sources <username>
列出特定账户的所有瓦片集来源。响应是来源数组。
delete-source
tilesets delete-source <username> <source_id>
永久删除瓦片集来源及其所有文件。这是一个不可恢复的操作!
标志
-f
或--force
:在删除前不要求确认
用法
# to delete mapbox://tileset-source/user/source_id
tilesets delete-source user source_id
estimate-area
tilesets estimate-area <features> -p/--precision <precision>
估计具有指定精度的要素的瓦片面积(平方公里)。接受行分隔的GeoJSON或GeoJSON要素集合作为文件或通过stdin
或字符串编码的坐标对列表,格式为"[lng, lat]"、"lng, lat"或"lng lat"。精度必须是10m、1m、30cm或1cm。
标志
-p
或--precision
[必需]: 精度级别--no-validation
[可选]: 在面积计算之前不本地验证源数据--force-1cm
[可选]: --force-1cm标志必须存在才能启用1cm精度面积计算,并且对于大型要素输入或具有全球范围的较大数据可能需要更长的时间。仅通过联系Mapbox支持后才能在瓦片集处理中使用1cm精度。
用法
# GeoJSON feature files
tilesets estimate-area ./file1.geojson ./file2.geojson -p <precision>
# GeoJSON features in stdin redirection 1
tilesets estimate-area -p <precision> < ./file.geojson
# GeoJSON features in stdin redirection 2
cat ./file.geojson | tilesets estimate-area -p <precision>
# GeoJSON features in stdin stream
tilesets estimate-area --precision <precision>
<features>
# coordinate pairs (must be in quotes)
tilesets estimate-area "[lng,lat]" "[lng,lat]" --precision <precision>
view-recipe
将配方JSON打印到标准输出。
tilesets view-recipe <tileset_id>
validate-recipe
验证配方JSON文档。
tilesets validate-recipe /path/to/recipe.json
示例 recipe.json
{
"version": 1,
"layers": {
"trees": {
"source": "mapbox://tileset-source/{username}/trees-data",
"minzoom": 4,
"maxzoom": 8
}
}
}
有关配方规范的更多详细信息,请参阅此处。有关配方示例,请参阅此处。
示例错误输出
{
"errors": [
"Unknown top-level key \"potato\"."
],
"valid": false
}
update-recipe
更新瓦片集的配方JSON。对新文档执行服务器端验证。
此命令仅支持使用Mapbox瓦片服务创建的瓦片集。
tilesets update-recipe <tileset_id> /path/to/recipe.json
create
使用来自本地文件系统的配方创建全新的空瓦片集。
tilesets create <tileset_id> --recipe /path/to/recipe.json --name "My neat tileset"
tileset_id
的格式为username.handle
- 例如 "mapbox.neat-tileset"。处理符只能包含"-"或"_"特殊字符,且长度不能超过32个字符。
标志
--recipe
或-r
[必填项]: 配方JSON文档的路径--name
或-n
[必填项]: 瓦片集的可读名称。(如果你的瓦片集ID是user.my_amazing_tileset,你可能希望name
字段是"My Amazing Tileset"。)--description
或-d
: 瓦片集的描述--privacy
或-p
: 设置瓦片集的隐私。允许的值是private
和public
。默认情况下,新瓦片集是私有的。--attribution
或-a
[可选项]: 设置瓦片集归属。必须是JSON字符串,具体是一个具有text
和link
键的归属对象数组。限制为三个归属对象,所有文本值的总长度不超过80个字符,所有链接值的总长度不超过1000个字符。
publish
使用提供的配方排队瓦片化作业。用于发布新的瓦片集或更新现有的瓦片集。返回作业ID以跟踪进度。
此命令仅支持使用Mapbox瓦片服务创建的瓦片集。
tilesets publish <tileset_id>
update
更新瓦片集信息。
tilesets update <tileset_id>
--name "Hello World"
--description "Say hi to the world"
--privacy=private
--attribution='[{"text":"© Hola Mundo","link":"http://example.com"}]'
标志
--name
或-n
[可选项]: 更新瓦片集名称--description
或-d
[可选项]: 更新瓦片集描述--privacy
或-p
[可选项]: 将瓦片集设置为public
或private
--attribution
或-a
[可选项]: 设置瓦片集归属。必须是JSON字符串,具体是一个具有text
和link
键的归属对象数组。限制为三个归属对象,所有文本值的总长度不超过80个字符,所有链接值的总长度不超过1000个字符。
delete
删除瓦片集。默认情况下将在删除前提示您进行确认。
tilesets delete <tileset_id>
标志
--force
或-f
跳过确认提示。
status
查看瓦片集最近作业的状态。要获取有关瓦片集作业的更多详细信息,包括失败和成功作业的时间戳,请使用tilesets jobs <tileset_id>
命令。
tilesets status <tileset_id>
job
检索瓦片集的单个作业。
此命令仅支持使用Mapbox瓦片服务创建的瓦片集。
tilesets job <tileset_id> <job_id>
什么是作业?每次您通过publish
命令(无论是新配方还是新源数据)生成或重新生成输出瓦片集时,都会创建一个处理您的数据的单个作业。瓦片集可以有许多作业,每个作业都有一个唯一的标识符。当您发布瓦片集时,HTTP响应包括与最近作业对应的唯一作业标识符。有关HTTP设计的更多信息,请参阅此文档。
jobs
检查与瓦片集关联的所有作业。您可以通过特定的阶段
(处理、排队、成功或失败)过滤作业。
此命令仅支持使用Mapbox瓦片服务创建的瓦片集。
tilesets jobs <tileset_id> --stage=processing
标志
--stage
[可选项]: 通过作业的阶段进行过滤--limit [1-500]
[可选项]: 返回的最大结果数,从1到500。默认为100。
list
列出帐户的所有瓦片集。默认情况下只列出瓦片集ID。使用--verbose
选项获取更多信息。
tilesets list <username>
标志
--type [vector|raster|rasterarray]
[可选项]: 通过瓦片集类型进行过滤--visibility [public|private]
[可选项]: 通过可见性进行过滤--sortby [created|modified]
[可选项]: 按其created
或modified
时间戳对结果进行排序--limit [1-500]
[可选项]: 返回的最大结果数,从1到500。默认为100。--verbose
[可选项]: 将列出API的整个响应对象
tilejson
查看瓦片集的TileJSON。 tileset_id
可以是逗号分隔的最多15个瓦片集ID,用于组合请求。
根据 规范,TileJSON文档试图为表示多种基于Web的图层元数据创建一个标准,以帮助客户端进行配置和浏览。
tilesets tilejson <tileset_id>
标志
--secure
:默认情况下,检索到的TileJSON(如“tiles”数组中的)将使用HTTP方案。在请求中包含此查询参数,以接收HTTPS资源URL。
list-activity
列出过去30天内用户瓦片集的总请求次数。如果有超过返回限制的结果,则返回分页键next
,可以作为start
参数传递给另一个命令。
tilesets list-activity <account>
标志
--sortby [requests|modified]
[可选]:排序键(默认:requests)--orderby [asc|desc]
[可选]:排序键(默认:desc)--limit [1-500]
[可选]:返回的最大结果数(默认:100)--indent
[可选]:JSON输出的缩进大小。--start
[可选]:从响应中的next
值获取的分页键,该响应有超过限制的结果。
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于 安装软件包 的信息。
源分布
构建分布
mapbox_tilesets-1.11.1.tar.gz的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0dc5995d7b98d0ccdfb921a5b5fbefb6887c4ef51bc491d59a7ebff64b22cec9 |
|
MD5 | c3568625787e90135d593a371b01902c |
|
BLAKE2b-256 | 8997db33fe0ffad96bb17e56c4a3a9da2898752328f663b9d85ce89bbc5ead80 |