%global _empty_manifest_terminate_build 0 Name: python-mapbox-tilesets Version: 1.8.1 Release: 1 Summary: CLI for interacting with and preparing data for the Tilesets API License: BSD-2 URL: https://github.com/mapbox/tilesets-cli Source0: https://mirrors.nju.edu.cn/pypi/web/packages/c3/33/4022ea20aa19018a2c3fd991cd25d8a9754c9e43d5220247bf455b9e0846/mapbox-tilesets-1.8.1.tar.gz BuildArch: noarch Requires: python3-boto3 Requires: python3-click Requires: python3-cligj Requires: python3-numpy Requires: python3-requests Requires: python3-requests-toolbelt Requires: python3-jsonschema Requires: python3-jsonseq Requires: python3-mercantile Requires: python3-geojson Requires: python3-supermercado Requires: python3-codecov Requires: python3-pytest Requires: python3-pytest-cov Requires: python3-pre-commit Requires: python3-black Requires: python3-pep8 Requires: python3-supermercado Requires: python3-toml %description # tilesets-cli [![Build Status](https://travis-ci.com/mapbox/tilesets-cli.svg?token=wqR3RcWUEprcQ1ttsgiP&branch=master)](https://travis-ci.com/mapbox/tilesets-cli) [![codecov](https://codecov.io/gh/mapbox/tilesets-cli/branch/master/graph/badge.svg?token=YBTKyc2o3j)](https://codecov.io/gh/mapbox/tilesets-cli) CLI for interacting with and preparing data for the [Mapbox Tiling Service](https://docs.mapbox.com/mapbox-tiling-service/overview/). 📚 If you have a question that isn't answered here, please refer to the complete [Mapbox Tiling Service documentation](https://docs.mapbox.com/mapbox-tiling-service/overview/). # Contributing [CONTRIBUTING.md](/CONTRIBUTING.md) includes information about release processes & running tests. :raised_hands: # Installation ## Requirements - Python >= 3.6 (can be installed via virtualenv) - Recommended: [virtualenv](https://virtualenv.pypa.io/) / [virtualenvwrapper](https://virtualenvwrapper.readthedocs.io/en/latest/) ## Basic installation `pip install mapbox-tilesets` will install everything but [`estimate-area`](#estimate-area). ## Installing optional `estimate-area` command If you are using an x86 Mac or Linux machine, run: `pip install 'mapbox-tilesets[estimate-area]'` Otherwise, you will need to install some dependencies. ### arm64 MacOS If you're on an arm64 Mac (e.g., with an M1 chip), you'll need to install [GDAL](https://gdal.org/) first. On Mac, a simple way is to use [Homebrew](https://brew.sh/): ```sh $ brew install gdal ... $ pip install 'mapbox-tilesets[estimate-area]' ``` ### Windows Note, Windows is not officially supported at this time. Windows users need to install [GDAL](http://www.lfd.uci.edu/~gohlke/pythonlibs/#gdal) and [rasterio](http://www.lfd.uci.edu/~gohlke/pythonlibs/#rasterio). Then `pip install 'mapbox-tilesets[estimate-area]'` ## Mapbox Access Tokens In order to use the tilesets endpoints, you need a Mapbox Access Token with `tilesets:write`, `tilesets:read`, and `tilesets:list` scopes. This is a secret token, so do not share it publicly! You can either pass the Mapbox access token to each command with the `--token` flag or export it as an environment variable. Acceptable values are: * `MAPBOX_ACCESS_TOKEN` * `MapboxAccessToken` Set the environment variable with `export` ``` export MAPBOX_ACCESS_TOKEN=my.token ``` # Commands * Tileset Sources * [`upload-source`](#upload-source) * *deprecated* [`add-source`](#deprecated-add-source) * [`validate-source`](#validate-source) * [`view-source`](#view-source) * [`list-sources`](#list-sources) * [`delete-source`](#delete-source) * [`estimate-area`](#estimate-area) * Recipes * [`view-recipe`](#view-recipe) * [`validate-recipe`](#validate-recipe) * [`update-recipe`](#update-recipe) * Tilesets * [`create`](#create) * [`publish`](#publish) * [`update`](#update) * [`delete`](#delete) * [`status`](#status) * [`job`](#job) * [`jobs`](#jobs) * [`list`](#list) * [`tilejson`](#tilejson) ### upload-source ```shell tilesets upload-source ``` Uploads GeoJSON files to a source for tiling. Accepts line-delimited GeoJSON or GeoJSON feature collections as files or via `stdin`. The CLI automatically converts data to line-delimited GeoJSON prior to uploading. Can be used to add data to a source or to replace all of the data in a source with the `--replace` flag. Please note that if your source data is a FeatureCollection, `tilesets` must read it all into memory to split it up into separate features before uploading it to the Tilesets API. You are strongly encouraged to provide your data in line-delimited GeoJSON format instead, especially if it is large. Flags: * `--no-validation` [optional]: do not validate source data locally before uploading * `--replace` [optional]: delete all existing source data and replace with data from the file * `--quiet` [optional]: do not display an upload progress bar Usage ```shell # single file tilesets upload-source ./file.geojson # multiple files tilesets upload-source 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 ./path/to/multiple/files/ ``` ### *deprecated* add-source *WARNING: add-source is maintained for legacy purposes. Please use the `upload-source` command instead.* ```shell tilesets add-source ``` Adds GeoJSON files to a source for tiling. Accepts line-delimited GeoJSON or GeoJSON feature collections as files or via `stdin`. The CLI automatically converts data to line-delimited GeoJSON prior to uploading. Please note that if your source data is a FeatureCollection, `tilesets` must read it all into memory to split it up into separate features before uploading it to the Tilesets API. You are strongly encouraged to provide your data in line-delimited GeoJSON format instead, especially if it is large. Flags: * `--no-validation` [optional]: do not validate source data locally before uploading * `--quiet` [optional]: do not display an upload progress bar Usage ```shell # single file tilesets add-source ./file.geojson # multiple files tilesets add-source 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 ./path/to/multiple/files/ ``` ### validate-source ```shell tilesets validate-source ``` Validates a line delimited GeoJSON source file locally. Example error output: ```JSON Invalid line delimited geojson. ``` ### view-source ``` tilesets view-source ``` Get information for a tileset source, such as number of files, the size in bytes, and the ID in mapbox:// protocol format. ### list-sources ``` tilesets list-sources ``` List all tileset sources from a particular account. Response is an array of sources. ### delete-source ``` tilesets delete-source ``` Permanently delete a tileset source and all of its files. This is not a recoverable action! Flags: * `-f` or `--force`: Do not ask for confirmation before deleting Usage ```shell # to delete mapbox://tileset-source/user/source_id tilesets delete-source user source_id ``` ### estimate-area ```shell tilesets estimate-area -p/--precision ``` Estimates tiled area (km2) of features with a specified precision. Accepts line-delimited GeoJSON or GeoJSON feature collections as files or via `stdin` or a list of string-encoded coordinate pairs of the form "[lng, lat]", or "lng, lat", or "lng lat". Precision must be 10m, 1m, 30cm or 1cm. Flags: * `-p` or `--precision` [required]: precision level * `--no-validation` [optional]: do not validate source data locally before area calculation * `--force-1cm` [optional]: the --force-1cm flag must be present to enable 1cm precision area calculation and may take longer for large feature inputs or data with global extents. 1cm precision for tileset processing is only available upon request after contacting [Mapbox support](https://support.mapbox.com/hc/en-us/requests/new?ticket_form_id=360000291231) Usage ```shell # GeoJSON feature files tilesets estimate-area ./file1.geojson ./file2.geojson -p # GeoJSON features in stdin redirection 1 tilesets estimate-area -p < ./file.geojson # GeoJSON features in stdin redirection 2 cat ./file.geojson | tilesets estimate-area -p # GeoJSON features in stdin stream tilesets estimate-area --precision # coordinate pairs (must be in quotes) tilesets estimate-area "[lng,lat]" "[lng,lat]" --precision ``` ### view-recipe Prints the Recipe JSON to stdout. ```shell tilesets view-recipe ``` ### validate-recipe Validates a Recipe JSON document. ```shell tilesets validate-recipe /path/to/recipe.json ``` Example `recipe.json`: ``` { "version": 1, "layers": { "trees": { "source": "mapbox://tileset-source/{username}/trees-data", "minzoom": 4, "maxzoom": 8 } } } ``` See more details about the recipe spec [here](https://docs.mapbox.com/help/troubleshooting/tileset-recipe-reference). See recipe examples [here](https://docs.mapbox.com/help/troubleshooting/tileset-recipe-examples). Example error output: ```JSON { "errors": [ "Unknown top-level key \"potato\"." ], "valid": false } ``` ### update-recipe Update the Recipe JSON for a tileset. Performs a server-side validation of the new document. This command only supports tilesets created with the [Mapbox Tiling Service](https://docs.mapbox.com/mapbox-tiling-service/overview/). ```shell tilesets update-recipe /path/to/recipe.json ``` ### create Creates a brand new, empty tileset with a recipe passed in from your local filesystem. ```shell tilesets create --recipe /path/to/recipe.json --name "My neat tileset" ``` The `tileset_id` is in the form of `username.handle` - for example "mapbox.neat-tileset". The handle may only include "-" or "\_" special characters and must be 32 characters or fewer. Flags: * `--recipe` or `-r` [required]: path to your Recipe JSON document * `--name` or `-n` [required]: human-readable name of your tileset. (If your tileset_id is user.my_amazing_tileset, you might want your `name` field to be "My Amazing Tileset".) * `--description` or `-d`: description of your tileset * `--privacy` or `-p`: Set the privacy of the tileset. Allowed values are `private` and `public`. By default, new tilesets are private. * `--attribution` or `-a` [optional]: set tileset attribution. Must be a JSON string, specifically an array of attribution objects, each with `text` and `link` keys. Limited to three attribution objects, 80 characters maximum combined across all text values, and 1000 characters maximum combined across all link values. ### publish Queues a tiling _job_ using the recipe provided. Use to publish a new tileset or update an existing one. Returns a job ID for progress tracking. This command only supports tilesets created with the [Mapbox Tiling Service](https://docs.mapbox.com/mapbox-tiling-service/overview/). ``` tilesets publish ``` ### update Update a tileset's information. ``` tilesets update --name "Hello World" --description "Say hi to the world" --privacy=private --attribution='[{"text":"© Hola Mundo","link":"http://example.com"}]' ``` Flags: * `--name` or `-n` [optional]: update tileset name * `--description` or `-d` [optional]: update tileset description * `--privacy` or `-p` [optional]: set your tileset to `public` or `private` * `--attribution` or `-a` [optional]: set tileset attribution. Must be a JSON string, specifically an array of attribution objects, each with `text` and `link` keys. Limited to three attribution objects, 80 characters maximum combined across all text values, and 1000 characters maximum combined across all link values. ### delete Delete a tileset. By default will prompt you for confirmation before deleting. ``` tilesets delete ``` Flags: * `--force` or `-f` to bypass confirmation prompt. ### status View the status of the most recent job for a tileset. To get more detailed information about a tileset's jobs, including the timestamps of failed and successful jobs, use the `tilesets jobs ` command. ``` tilesets status ``` ### job Retrieve a single job for a tileset. This command only supports tilesets created with the [Mapbox Tiling Service](https://docs.mapbox.com/mapbox-tiling-service/overview/). ```shell tilesets job ``` **What is a job?** Each time you generate or regenerate your output tileset via the `publish` command (whether that's a new recipe or new source data), a single job is created that processes your data. A tileset can have many jobs, each with a unique identifier. When you publish a tileset, the HTTP response includes the unique job identifier that corresponds to the most recent job. To read more about HTTP design, see this [documentation](https://docs.mapbox.com/api/maps/#tilesets). ### jobs Check all jobs associated with a tileset. You can filter jobs by a particular `stage` - processing, queued, success, or failed. This command only supports tilesets created with the [Mapbox Tiling Service](https://docs.mapbox.com/mapbox-tiling-service/overview/). ```shell tilesets jobs --stage=processing ``` Flags: * `--stage` [optional]: filter by the stage of jobs * `--limit [1-500]` [optional]: the maximum number of results to return, from 1 to 500. The default is 100. ### list List all tilesets for an account. Just lists tileset IDs by default. Use the `--verbose` option for more information. ```shell tilesets list ``` Flags: * `--type [vector|raster]` [optional]: filter results by tileset type * `--visibility [public|private]` [optional]: filter results by visibility * `--sortby [created|modified]` [optional]: sort results by their `created` or `modified` timestamps * `--limit [1-500]` [optional]: the maximum number of results to return, from 1 to 500. The default is 100. * `--verbose` [optional]: will list out the entire response object from the API ### tilejson View the TileJSON for a tileset. `tileset_id` can be a comma-separated list of up to 15 tilesets for composited requests. A TileJSON document, according to the [specification](https://github.com/mapbox/tilejson-spec), attempts to create a standard for representing metadata about multiple types of web-based layers, to aid clients in configuration and browsing. ``` tilesets tilejson ``` Flags: * `--secure`: By default, resource URLs in the retrieved TileJSON (such as in the "tiles" array) will use the HTTP scheme. Include this query parameter in your request to receive HTTPS resource URLs instead. %package -n python3-mapbox-tilesets Summary: CLI for interacting with and preparing data for the Tilesets API Provides: python-mapbox-tilesets BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-mapbox-tilesets # tilesets-cli [![Build Status](https://travis-ci.com/mapbox/tilesets-cli.svg?token=wqR3RcWUEprcQ1ttsgiP&branch=master)](https://travis-ci.com/mapbox/tilesets-cli) [![codecov](https://codecov.io/gh/mapbox/tilesets-cli/branch/master/graph/badge.svg?token=YBTKyc2o3j)](https://codecov.io/gh/mapbox/tilesets-cli) CLI for interacting with and preparing data for the [Mapbox Tiling Service](https://docs.mapbox.com/mapbox-tiling-service/overview/). 📚 If you have a question that isn't answered here, please refer to the complete [Mapbox Tiling Service documentation](https://docs.mapbox.com/mapbox-tiling-service/overview/). # Contributing [CONTRIBUTING.md](/CONTRIBUTING.md) includes information about release processes & running tests. :raised_hands: # Installation ## Requirements - Python >= 3.6 (can be installed via virtualenv) - Recommended: [virtualenv](https://virtualenv.pypa.io/) / [virtualenvwrapper](https://virtualenvwrapper.readthedocs.io/en/latest/) ## Basic installation `pip install mapbox-tilesets` will install everything but [`estimate-area`](#estimate-area). ## Installing optional `estimate-area` command If you are using an x86 Mac or Linux machine, run: `pip install 'mapbox-tilesets[estimate-area]'` Otherwise, you will need to install some dependencies. ### arm64 MacOS If you're on an arm64 Mac (e.g., with an M1 chip), you'll need to install [GDAL](https://gdal.org/) first. On Mac, a simple way is to use [Homebrew](https://brew.sh/): ```sh $ brew install gdal ... $ pip install 'mapbox-tilesets[estimate-area]' ``` ### Windows Note, Windows is not officially supported at this time. Windows users need to install [GDAL](http://www.lfd.uci.edu/~gohlke/pythonlibs/#gdal) and [rasterio](http://www.lfd.uci.edu/~gohlke/pythonlibs/#rasterio). Then `pip install 'mapbox-tilesets[estimate-area]'` ## Mapbox Access Tokens In order to use the tilesets endpoints, you need a Mapbox Access Token with `tilesets:write`, `tilesets:read`, and `tilesets:list` scopes. This is a secret token, so do not share it publicly! You can either pass the Mapbox access token to each command with the `--token` flag or export it as an environment variable. Acceptable values are: * `MAPBOX_ACCESS_TOKEN` * `MapboxAccessToken` Set the environment variable with `export` ``` export MAPBOX_ACCESS_TOKEN=my.token ``` # Commands * Tileset Sources * [`upload-source`](#upload-source) * *deprecated* [`add-source`](#deprecated-add-source) * [`validate-source`](#validate-source) * [`view-source`](#view-source) * [`list-sources`](#list-sources) * [`delete-source`](#delete-source) * [`estimate-area`](#estimate-area) * Recipes * [`view-recipe`](#view-recipe) * [`validate-recipe`](#validate-recipe) * [`update-recipe`](#update-recipe) * Tilesets * [`create`](#create) * [`publish`](#publish) * [`update`](#update) * [`delete`](#delete) * [`status`](#status) * [`job`](#job) * [`jobs`](#jobs) * [`list`](#list) * [`tilejson`](#tilejson) ### upload-source ```shell tilesets upload-source ``` Uploads GeoJSON files to a source for tiling. Accepts line-delimited GeoJSON or GeoJSON feature collections as files or via `stdin`. The CLI automatically converts data to line-delimited GeoJSON prior to uploading. Can be used to add data to a source or to replace all of the data in a source with the `--replace` flag. Please note that if your source data is a FeatureCollection, `tilesets` must read it all into memory to split it up into separate features before uploading it to the Tilesets API. You are strongly encouraged to provide your data in line-delimited GeoJSON format instead, especially if it is large. Flags: * `--no-validation` [optional]: do not validate source data locally before uploading * `--replace` [optional]: delete all existing source data and replace with data from the file * `--quiet` [optional]: do not display an upload progress bar Usage ```shell # single file tilesets upload-source ./file.geojson # multiple files tilesets upload-source 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 ./path/to/multiple/files/ ``` ### *deprecated* add-source *WARNING: add-source is maintained for legacy purposes. Please use the `upload-source` command instead.* ```shell tilesets add-source ``` Adds GeoJSON files to a source for tiling. Accepts line-delimited GeoJSON or GeoJSON feature collections as files or via `stdin`. The CLI automatically converts data to line-delimited GeoJSON prior to uploading. Please note that if your source data is a FeatureCollection, `tilesets` must read it all into memory to split it up into separate features before uploading it to the Tilesets API. You are strongly encouraged to provide your data in line-delimited GeoJSON format instead, especially if it is large. Flags: * `--no-validation` [optional]: do not validate source data locally before uploading * `--quiet` [optional]: do not display an upload progress bar Usage ```shell # single file tilesets add-source ./file.geojson # multiple files tilesets add-source 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 ./path/to/multiple/files/ ``` ### validate-source ```shell tilesets validate-source ``` Validates a line delimited GeoJSON source file locally. Example error output: ```JSON Invalid line delimited geojson. ``` ### view-source ``` tilesets view-source ``` Get information for a tileset source, such as number of files, the size in bytes, and the ID in mapbox:// protocol format. ### list-sources ``` tilesets list-sources ``` List all tileset sources from a particular account. Response is an array of sources. ### delete-source ``` tilesets delete-source ``` Permanently delete a tileset source and all of its files. This is not a recoverable action! Flags: * `-f` or `--force`: Do not ask for confirmation before deleting Usage ```shell # to delete mapbox://tileset-source/user/source_id tilesets delete-source user source_id ``` ### estimate-area ```shell tilesets estimate-area -p/--precision ``` Estimates tiled area (km2) of features with a specified precision. Accepts line-delimited GeoJSON or GeoJSON feature collections as files or via `stdin` or a list of string-encoded coordinate pairs of the form "[lng, lat]", or "lng, lat", or "lng lat". Precision must be 10m, 1m, 30cm or 1cm. Flags: * `-p` or `--precision` [required]: precision level * `--no-validation` [optional]: do not validate source data locally before area calculation * `--force-1cm` [optional]: the --force-1cm flag must be present to enable 1cm precision area calculation and may take longer for large feature inputs or data with global extents. 1cm precision for tileset processing is only available upon request after contacting [Mapbox support](https://support.mapbox.com/hc/en-us/requests/new?ticket_form_id=360000291231) Usage ```shell # GeoJSON feature files tilesets estimate-area ./file1.geojson ./file2.geojson -p # GeoJSON features in stdin redirection 1 tilesets estimate-area -p < ./file.geojson # GeoJSON features in stdin redirection 2 cat ./file.geojson | tilesets estimate-area -p # GeoJSON features in stdin stream tilesets estimate-area --precision # coordinate pairs (must be in quotes) tilesets estimate-area "[lng,lat]" "[lng,lat]" --precision ``` ### view-recipe Prints the Recipe JSON to stdout. ```shell tilesets view-recipe ``` ### validate-recipe Validates a Recipe JSON document. ```shell tilesets validate-recipe /path/to/recipe.json ``` Example `recipe.json`: ``` { "version": 1, "layers": { "trees": { "source": "mapbox://tileset-source/{username}/trees-data", "minzoom": 4, "maxzoom": 8 } } } ``` See more details about the recipe spec [here](https://docs.mapbox.com/help/troubleshooting/tileset-recipe-reference). See recipe examples [here](https://docs.mapbox.com/help/troubleshooting/tileset-recipe-examples). Example error output: ```JSON { "errors": [ "Unknown top-level key \"potato\"." ], "valid": false } ``` ### update-recipe Update the Recipe JSON for a tileset. Performs a server-side validation of the new document. This command only supports tilesets created with the [Mapbox Tiling Service](https://docs.mapbox.com/mapbox-tiling-service/overview/). ```shell tilesets update-recipe /path/to/recipe.json ``` ### create Creates a brand new, empty tileset with a recipe passed in from your local filesystem. ```shell tilesets create --recipe /path/to/recipe.json --name "My neat tileset" ``` The `tileset_id` is in the form of `username.handle` - for example "mapbox.neat-tileset". The handle may only include "-" or "\_" special characters and must be 32 characters or fewer. Flags: * `--recipe` or `-r` [required]: path to your Recipe JSON document * `--name` or `-n` [required]: human-readable name of your tileset. (If your tileset_id is user.my_amazing_tileset, you might want your `name` field to be "My Amazing Tileset".) * `--description` or `-d`: description of your tileset * `--privacy` or `-p`: Set the privacy of the tileset. Allowed values are `private` and `public`. By default, new tilesets are private. * `--attribution` or `-a` [optional]: set tileset attribution. Must be a JSON string, specifically an array of attribution objects, each with `text` and `link` keys. Limited to three attribution objects, 80 characters maximum combined across all text values, and 1000 characters maximum combined across all link values. ### publish Queues a tiling _job_ using the recipe provided. Use to publish a new tileset or update an existing one. Returns a job ID for progress tracking. This command only supports tilesets created with the [Mapbox Tiling Service](https://docs.mapbox.com/mapbox-tiling-service/overview/). ``` tilesets publish ``` ### update Update a tileset's information. ``` tilesets update --name "Hello World" --description "Say hi to the world" --privacy=private --attribution='[{"text":"© Hola Mundo","link":"http://example.com"}]' ``` Flags: * `--name` or `-n` [optional]: update tileset name * `--description` or `-d` [optional]: update tileset description * `--privacy` or `-p` [optional]: set your tileset to `public` or `private` * `--attribution` or `-a` [optional]: set tileset attribution. Must be a JSON string, specifically an array of attribution objects, each with `text` and `link` keys. Limited to three attribution objects, 80 characters maximum combined across all text values, and 1000 characters maximum combined across all link values. ### delete Delete a tileset. By default will prompt you for confirmation before deleting. ``` tilesets delete ``` Flags: * `--force` or `-f` to bypass confirmation prompt. ### status View the status of the most recent job for a tileset. To get more detailed information about a tileset's jobs, including the timestamps of failed and successful jobs, use the `tilesets jobs ` command. ``` tilesets status ``` ### job Retrieve a single job for a tileset. This command only supports tilesets created with the [Mapbox Tiling Service](https://docs.mapbox.com/mapbox-tiling-service/overview/). ```shell tilesets job ``` **What is a job?** Each time you generate or regenerate your output tileset via the `publish` command (whether that's a new recipe or new source data), a single job is created that processes your data. A tileset can have many jobs, each with a unique identifier. When you publish a tileset, the HTTP response includes the unique job identifier that corresponds to the most recent job. To read more about HTTP design, see this [documentation](https://docs.mapbox.com/api/maps/#tilesets). ### jobs Check all jobs associated with a tileset. You can filter jobs by a particular `stage` - processing, queued, success, or failed. This command only supports tilesets created with the [Mapbox Tiling Service](https://docs.mapbox.com/mapbox-tiling-service/overview/). ```shell tilesets jobs --stage=processing ``` Flags: * `--stage` [optional]: filter by the stage of jobs * `--limit [1-500]` [optional]: the maximum number of results to return, from 1 to 500. The default is 100. ### list List all tilesets for an account. Just lists tileset IDs by default. Use the `--verbose` option for more information. ```shell tilesets list ``` Flags: * `--type [vector|raster]` [optional]: filter results by tileset type * `--visibility [public|private]` [optional]: filter results by visibility * `--sortby [created|modified]` [optional]: sort results by their `created` or `modified` timestamps * `--limit [1-500]` [optional]: the maximum number of results to return, from 1 to 500. The default is 100. * `--verbose` [optional]: will list out the entire response object from the API ### tilejson View the TileJSON for a tileset. `tileset_id` can be a comma-separated list of up to 15 tilesets for composited requests. A TileJSON document, according to the [specification](https://github.com/mapbox/tilejson-spec), attempts to create a standard for representing metadata about multiple types of web-based layers, to aid clients in configuration and browsing. ``` tilesets tilejson ``` Flags: * `--secure`: By default, resource URLs in the retrieved TileJSON (such as in the "tiles" array) will use the HTTP scheme. Include this query parameter in your request to receive HTTPS resource URLs instead. %package help Summary: Development documents and examples for mapbox-tilesets Provides: python3-mapbox-tilesets-doc %description help # tilesets-cli [![Build Status](https://travis-ci.com/mapbox/tilesets-cli.svg?token=wqR3RcWUEprcQ1ttsgiP&branch=master)](https://travis-ci.com/mapbox/tilesets-cli) [![codecov](https://codecov.io/gh/mapbox/tilesets-cli/branch/master/graph/badge.svg?token=YBTKyc2o3j)](https://codecov.io/gh/mapbox/tilesets-cli) CLI for interacting with and preparing data for the [Mapbox Tiling Service](https://docs.mapbox.com/mapbox-tiling-service/overview/). 📚 If you have a question that isn't answered here, please refer to the complete [Mapbox Tiling Service documentation](https://docs.mapbox.com/mapbox-tiling-service/overview/). # Contributing [CONTRIBUTING.md](/CONTRIBUTING.md) includes information about release processes & running tests. :raised_hands: # Installation ## Requirements - Python >= 3.6 (can be installed via virtualenv) - Recommended: [virtualenv](https://virtualenv.pypa.io/) / [virtualenvwrapper](https://virtualenvwrapper.readthedocs.io/en/latest/) ## Basic installation `pip install mapbox-tilesets` will install everything but [`estimate-area`](#estimate-area). ## Installing optional `estimate-area` command If you are using an x86 Mac or Linux machine, run: `pip install 'mapbox-tilesets[estimate-area]'` Otherwise, you will need to install some dependencies. ### arm64 MacOS If you're on an arm64 Mac (e.g., with an M1 chip), you'll need to install [GDAL](https://gdal.org/) first. On Mac, a simple way is to use [Homebrew](https://brew.sh/): ```sh $ brew install gdal ... $ pip install 'mapbox-tilesets[estimate-area]' ``` ### Windows Note, Windows is not officially supported at this time. Windows users need to install [GDAL](http://www.lfd.uci.edu/~gohlke/pythonlibs/#gdal) and [rasterio](http://www.lfd.uci.edu/~gohlke/pythonlibs/#rasterio). Then `pip install 'mapbox-tilesets[estimate-area]'` ## Mapbox Access Tokens In order to use the tilesets endpoints, you need a Mapbox Access Token with `tilesets:write`, `tilesets:read`, and `tilesets:list` scopes. This is a secret token, so do not share it publicly! You can either pass the Mapbox access token to each command with the `--token` flag or export it as an environment variable. Acceptable values are: * `MAPBOX_ACCESS_TOKEN` * `MapboxAccessToken` Set the environment variable with `export` ``` export MAPBOX_ACCESS_TOKEN=my.token ``` # Commands * Tileset Sources * [`upload-source`](#upload-source) * *deprecated* [`add-source`](#deprecated-add-source) * [`validate-source`](#validate-source) * [`view-source`](#view-source) * [`list-sources`](#list-sources) * [`delete-source`](#delete-source) * [`estimate-area`](#estimate-area) * Recipes * [`view-recipe`](#view-recipe) * [`validate-recipe`](#validate-recipe) * [`update-recipe`](#update-recipe) * Tilesets * [`create`](#create) * [`publish`](#publish) * [`update`](#update) * [`delete`](#delete) * [`status`](#status) * [`job`](#job) * [`jobs`](#jobs) * [`list`](#list) * [`tilejson`](#tilejson) ### upload-source ```shell tilesets upload-source ``` Uploads GeoJSON files to a source for tiling. Accepts line-delimited GeoJSON or GeoJSON feature collections as files or via `stdin`. The CLI automatically converts data to line-delimited GeoJSON prior to uploading. Can be used to add data to a source or to replace all of the data in a source with the `--replace` flag. Please note that if your source data is a FeatureCollection, `tilesets` must read it all into memory to split it up into separate features before uploading it to the Tilesets API. You are strongly encouraged to provide your data in line-delimited GeoJSON format instead, especially if it is large. Flags: * `--no-validation` [optional]: do not validate source data locally before uploading * `--replace` [optional]: delete all existing source data and replace with data from the file * `--quiet` [optional]: do not display an upload progress bar Usage ```shell # single file tilesets upload-source ./file.geojson # multiple files tilesets upload-source 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 ./path/to/multiple/files/ ``` ### *deprecated* add-source *WARNING: add-source is maintained for legacy purposes. Please use the `upload-source` command instead.* ```shell tilesets add-source ``` Adds GeoJSON files to a source for tiling. Accepts line-delimited GeoJSON or GeoJSON feature collections as files or via `stdin`. The CLI automatically converts data to line-delimited GeoJSON prior to uploading. Please note that if your source data is a FeatureCollection, `tilesets` must read it all into memory to split it up into separate features before uploading it to the Tilesets API. You are strongly encouraged to provide your data in line-delimited GeoJSON format instead, especially if it is large. Flags: * `--no-validation` [optional]: do not validate source data locally before uploading * `--quiet` [optional]: do not display an upload progress bar Usage ```shell # single file tilesets add-source ./file.geojson # multiple files tilesets add-source 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 ./path/to/multiple/files/ ``` ### validate-source ```shell tilesets validate-source ``` Validates a line delimited GeoJSON source file locally. Example error output: ```JSON Invalid line delimited geojson. ``` ### view-source ``` tilesets view-source ``` Get information for a tileset source, such as number of files, the size in bytes, and the ID in mapbox:// protocol format. ### list-sources ``` tilesets list-sources ``` List all tileset sources from a particular account. Response is an array of sources. ### delete-source ``` tilesets delete-source ``` Permanently delete a tileset source and all of its files. This is not a recoverable action! Flags: * `-f` or `--force`: Do not ask for confirmation before deleting Usage ```shell # to delete mapbox://tileset-source/user/source_id tilesets delete-source user source_id ``` ### estimate-area ```shell tilesets estimate-area -p/--precision ``` Estimates tiled area (km2) of features with a specified precision. Accepts line-delimited GeoJSON or GeoJSON feature collections as files or via `stdin` or a list of string-encoded coordinate pairs of the form "[lng, lat]", or "lng, lat", or "lng lat". Precision must be 10m, 1m, 30cm or 1cm. Flags: * `-p` or `--precision` [required]: precision level * `--no-validation` [optional]: do not validate source data locally before area calculation * `--force-1cm` [optional]: the --force-1cm flag must be present to enable 1cm precision area calculation and may take longer for large feature inputs or data with global extents. 1cm precision for tileset processing is only available upon request after contacting [Mapbox support](https://support.mapbox.com/hc/en-us/requests/new?ticket_form_id=360000291231) Usage ```shell # GeoJSON feature files tilesets estimate-area ./file1.geojson ./file2.geojson -p # GeoJSON features in stdin redirection 1 tilesets estimate-area -p < ./file.geojson # GeoJSON features in stdin redirection 2 cat ./file.geojson | tilesets estimate-area -p # GeoJSON features in stdin stream tilesets estimate-area --precision # coordinate pairs (must be in quotes) tilesets estimate-area "[lng,lat]" "[lng,lat]" --precision ``` ### view-recipe Prints the Recipe JSON to stdout. ```shell tilesets view-recipe ``` ### validate-recipe Validates a Recipe JSON document. ```shell tilesets validate-recipe /path/to/recipe.json ``` Example `recipe.json`: ``` { "version": 1, "layers": { "trees": { "source": "mapbox://tileset-source/{username}/trees-data", "minzoom": 4, "maxzoom": 8 } } } ``` See more details about the recipe spec [here](https://docs.mapbox.com/help/troubleshooting/tileset-recipe-reference). See recipe examples [here](https://docs.mapbox.com/help/troubleshooting/tileset-recipe-examples). Example error output: ```JSON { "errors": [ "Unknown top-level key \"potato\"." ], "valid": false } ``` ### update-recipe Update the Recipe JSON for a tileset. Performs a server-side validation of the new document. This command only supports tilesets created with the [Mapbox Tiling Service](https://docs.mapbox.com/mapbox-tiling-service/overview/). ```shell tilesets update-recipe /path/to/recipe.json ``` ### create Creates a brand new, empty tileset with a recipe passed in from your local filesystem. ```shell tilesets create --recipe /path/to/recipe.json --name "My neat tileset" ``` The `tileset_id` is in the form of `username.handle` - for example "mapbox.neat-tileset". The handle may only include "-" or "\_" special characters and must be 32 characters or fewer. Flags: * `--recipe` or `-r` [required]: path to your Recipe JSON document * `--name` or `-n` [required]: human-readable name of your tileset. (If your tileset_id is user.my_amazing_tileset, you might want your `name` field to be "My Amazing Tileset".) * `--description` or `-d`: description of your tileset * `--privacy` or `-p`: Set the privacy of the tileset. Allowed values are `private` and `public`. By default, new tilesets are private. * `--attribution` or `-a` [optional]: set tileset attribution. Must be a JSON string, specifically an array of attribution objects, each with `text` and `link` keys. Limited to three attribution objects, 80 characters maximum combined across all text values, and 1000 characters maximum combined across all link values. ### publish Queues a tiling _job_ using the recipe provided. Use to publish a new tileset or update an existing one. Returns a job ID for progress tracking. This command only supports tilesets created with the [Mapbox Tiling Service](https://docs.mapbox.com/mapbox-tiling-service/overview/). ``` tilesets publish ``` ### update Update a tileset's information. ``` tilesets update --name "Hello World" --description "Say hi to the world" --privacy=private --attribution='[{"text":"© Hola Mundo","link":"http://example.com"}]' ``` Flags: * `--name` or `-n` [optional]: update tileset name * `--description` or `-d` [optional]: update tileset description * `--privacy` or `-p` [optional]: set your tileset to `public` or `private` * `--attribution` or `-a` [optional]: set tileset attribution. Must be a JSON string, specifically an array of attribution objects, each with `text` and `link` keys. Limited to three attribution objects, 80 characters maximum combined across all text values, and 1000 characters maximum combined across all link values. ### delete Delete a tileset. By default will prompt you for confirmation before deleting. ``` tilesets delete ``` Flags: * `--force` or `-f` to bypass confirmation prompt. ### status View the status of the most recent job for a tileset. To get more detailed information about a tileset's jobs, including the timestamps of failed and successful jobs, use the `tilesets jobs ` command. ``` tilesets status ``` ### job Retrieve a single job for a tileset. This command only supports tilesets created with the [Mapbox Tiling Service](https://docs.mapbox.com/mapbox-tiling-service/overview/). ```shell tilesets job ``` **What is a job?** Each time you generate or regenerate your output tileset via the `publish` command (whether that's a new recipe or new source data), a single job is created that processes your data. A tileset can have many jobs, each with a unique identifier. When you publish a tileset, the HTTP response includes the unique job identifier that corresponds to the most recent job. To read more about HTTP design, see this [documentation](https://docs.mapbox.com/api/maps/#tilesets). ### jobs Check all jobs associated with a tileset. You can filter jobs by a particular `stage` - processing, queued, success, or failed. This command only supports tilesets created with the [Mapbox Tiling Service](https://docs.mapbox.com/mapbox-tiling-service/overview/). ```shell tilesets jobs --stage=processing ``` Flags: * `--stage` [optional]: filter by the stage of jobs * `--limit [1-500]` [optional]: the maximum number of results to return, from 1 to 500. The default is 100. ### list List all tilesets for an account. Just lists tileset IDs by default. Use the `--verbose` option for more information. ```shell tilesets list ``` Flags: * `--type [vector|raster]` [optional]: filter results by tileset type * `--visibility [public|private]` [optional]: filter results by visibility * `--sortby [created|modified]` [optional]: sort results by their `created` or `modified` timestamps * `--limit [1-500]` [optional]: the maximum number of results to return, from 1 to 500. The default is 100. * `--verbose` [optional]: will list out the entire response object from the API ### tilejson View the TileJSON for a tileset. `tileset_id` can be a comma-separated list of up to 15 tilesets for composited requests. A TileJSON document, according to the [specification](https://github.com/mapbox/tilejson-spec), attempts to create a standard for representing metadata about multiple types of web-based layers, to aid clients in configuration and browsing. ``` tilesets tilejson ``` Flags: * `--secure`: By default, resource URLs in the retrieved TileJSON (such as in the "tiles" array) will use the HTTP scheme. Include this query parameter in your request to receive HTTPS resource URLs instead. %prep %autosetup -n mapbox-tilesets-1.8.1 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-mapbox-tilesets -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Mon May 15 2023 Python_Bot - 1.8.1-1 - Package Spec generated