.. highlight:: text Examples ======== Data Examples ------------- Get the latest 10 items from the API of any ItemType:: planet data search --limit 10 Get recently acquired PSScene ItemType records:: planet data search --item-type PSScene --date acquired gt 2017-02-14 Item types can be specified case-insensitively, with glob matching in the CLI:: planet data search --item-type skysat* --date acquired gt 2017-02-14 Search for a month. Note: criteria are applied as an AND filter:: planet data search --item-type PSScene --date acquired gt 2017-02-14 --date acquired lt 2017-03-14 Use the geometry defined in `aoi.json` to constrain a search for PSScene:: planet data search --item-type PSScene --geom aoi.json Output a search filter to a file:: planet data filter --range cloud_cover lt .1 --geom aoi.json > my-search.json Create a saved search from a filter in a file with some additional options (this will output the search id for later use):: planet data create-search --item-type PSScene --string-in satellite_id 0c12 --name my-search --filter-json my-search.json Execute a saved search:: planet data saved-search 4782d4118fee4275860665129a1e23c1 Get statistics using a filter from a file:: planet data stats --item-type Sentinel2L1C --filter-json my-search.json Activate and download the latest 3 PSScene items to `images-download-directory`. Note: this might take some time and directory must exist:: planet data download --item-type PSScene --limit 3 --dest images-download-directory Mosaic Examples --------------- List information for all mosaics you have access to:: planet mosaics list Note that you may want to parse the JSON that's output into a more human readable format. The cli does not directly provide options for this, but is meant to be easily interoperable with other tools, e.g. `jq `_. For example, we could output just the name and date range of each mosaic with:: planet mosaics list | jq -r '.mosaics[] | [.name, .first_acquired, .last_acquired] | @tsv' Get basic information for a specific mosaic:: planet mosaics info global_monthly_2018_09_mosaic List the first 10 quads for a mosaic (Omitting the ``--limit`` option will list all quads. Keep in mind that there may be millions for a global mosaic.):: planet mosaics search global_monthly_2018_09_mosaic --limit=10 Find all quads inside a particular area of interest:: planet mosaics search global_monthly_2018_09_mosaic --bbox=-95.5,29.6,-95.3,29.8 Note that the format of ``--bbox`` is "xmin,ymin,xmax,ymax", so longitude comes before latitude. Get basic information (footprint, etc) for a particular mosaic quad:: planet mosaics quad-info global_monthly_2018_09_mosaic 480-1200 Determine which scenes contributed to a particular mosaic quad:: planet mosaics contribution global_monthly_2018_09_mosaic 480-1200 Download all quads for a mosaic (this is impractical for large mosaics, which are hundreds of Terabytes in size):: planet mosaics download Download all quads inside of a rectangular box for a mosaic:: planet mosaics download global_monthly_2018_09_mosaic --bbox=-95.5,29.6,-95.3,29.8 Get information about a mosaic series:: planet mosaics series describe Get list of mosaics in a mosaic series:: planet mosaics series list-mosaics Analytics Examples ------------------ These examples assume that the reader is already familiar with the `Analytics User Guide`_. .. This User Guide will be moved to the Dev Center in the near future. .. _`Analytics User Guide`: https://docs.google.com/document/d/1-ZgGIFKb9IxxVMjTb603lRd6pwEygcri5rKxcsEjk8E/ List information for all feeds, subscriptions, or collections you have access to:: planet analytics feeds list planet analytics subscriptions list planet analytics collections list Note that you may want to parse the JSON that's output into a more human readable format. The cli does not directly provide options for this, but is meant to be easily interoperable with other tools, e.g. `jq `_. For example, for feeds we may be interested in the ID, description, and the target and source mosaics (if applicable):: planet analytics feeds list | jq -r '.data[] | [.id, .description, .created, .source.config.series_id, .target.config.series_id]' The ID, description, source feed ID, and the created date are useful for a subscription:: planet analytics subscriptions list | jq -r '.data[] | [.id, .feedID, .created]' Get the first 10 subscriptions for a feed:: planet analytics subscriptions list --feed-id --limit 10 Get information about a particular feed, subscription, or collection:: planet analytics feeds describe planet analytics subscriptions describe planet analytics collections describe List all mosaics associated with a feed, subscription, or collection (if the feed is mosaics-based only):: planet analytics feeds list-mosaics planet analytics subscriptions list-mosaics planet analytics collections list-mosaics Features (GeoJSON results) for a collection can be requested in one of two ways. The `list` option will only return slices of results (defaults to 100 at a time), whereas `list-all` will stream features until all features have been retrieved. Both options accept the same additional filters. planet analytics collections features list planet analytics collections features list-all To page through results when using `list`:: planet analytics collections features list planet analytics collections features list --before Get the 10 most recent features (GeoJSON results) for a collection:: planet analytics collections features list --limit 10 Stream all features (GeoJSON results) since last seen feature:: planet analytics collections features list-all --after Get features (GeoJSON results) for a collection within a certain time range:: planet analytics collections features list --time-range 2019-01-01T00:00:00.00Z/2019-02-01T00:00:00.00Z planet analytics collections features list-all --time-range 2019-01-01T00:00:00.00Z/2019-02-01T00:00:00.00Z Get features (GeoJSON results) for a collection within a certain area:: planet analytics collections features list --bbox 122.3,47.6,122.4,47.7 planet analytics collections features list-all --bbox 122.3,47.6,122.4,47.7 It is also possible to get resources associated with a particular GeoJSON feature in a collection. Just as different feeds are based upon different imagery types and produce different types of output, each feed’s resources are varied: * `source-quad`: Download the mosaic quad used to derive a feature, only available for collections associated with feeds that operate on mosaics * `target-quad`: Download the mosaic quad that contains the raster output of a feed, only available for collections associated with feeds that output raster data * `source-image-info`: Get the metadata for the source Planet product (ex. PSScene) used to derive a feature, only available for non-mosaic feeds Requesting a resource for a feature in a collection:: planet analytics collections features get source-quad planet analytics collections features get target-quad planet analytics collections features get source-image-info Orders Examples ----------------- List all recent orders for the authenticated user:: planet orders list Get the status of a single order by Order ID:: planet orders get Note that you may want to parse the JSON that's output into a more human readable format. The cli does not directly provide options for this, but is meant to be easily interoperable with other tools, e.g. `jq `_. To cancel a running order by given order ID:: planet orders cancel To download an order to your local machine:: planet orders download Optionally, a `--dest ` flag may be specified too. Creating an Order .................. The minimal command to create a simple order looks something like:: planet orders create --name "my order" \ --id 20151119_025740_0c74,20151119_025741_0c74 \ --bundle visual --item-type psscene If no toolchain or delivery details are specified, a basic order with download delivery will be placed for the requested bundle including the item id(s) specified. In the place of `--id`, you can insert a Data search string. This will populate the list of IDs from a search. For example:: planet orders create --name "my order" \ --ids_from_search $'--item-type PSScene --date acquired gt 2017-02-14 --date acquired lt 2017-03-14 --limit 6 --geom \'{ "type": "FeatureCollection", "features": [ { "type": "Feature", "properties": {}, "geometry": { "type": "Polygon", "coordinates": [ [ [ -116.40701293945311, 43.061363052307875 ], [ -116.4451217651367, 43.05032512283074 ], [ -116.4320755004883, 43.017450433440814 ], [ -116.37508392333984, 43.01092359150748 ], [ -116.3393783569336, 43.03677585761058 ], [ -116.35894775390624, 43.06186472916744 ], [ -116.40701293945311, 43.061363052307875 ] ] ] } } ] }\'' \ --bundle visual \ --item-type psscene \ --zip bundle --email \ --clip '{ "type": "Polygon", "coordinates": [ [ [ -116.40701293945311, 43.061363052307875 ], [ -116.4451217651367, 43.05032512283074 ], [ -116.4320755004883, 43.017450433440814 ], [ -116.37508392333984, 43.01092359150748 ], [ -116.3393783569336, 43.03677585761058 ], [ -116.35894775390624, 43.06186472916744 ], [ -116.40701293945311, 43.061363052307875 ] ] ] }' Note that `--ids_from_search` is passed as a string value. Additionally, optional toolchain & delivery details can be provided on the command line, e.g.:: planet orders create --name "my order" \ --id 20151119_025740_0c74,20151119_025741_0c74 \ --bundle visual --item-type psscene --zip order --email This places the same order as above, and will also provide a .zip archive download link for the full order, as well as email notification. If you change `--zip order` to `--zip bundle`, the individual bundles will be zipped rather than the full order. You can also clip the items in an order by providing a GeoJSON AOI Geometry with the `--clip` parameter:: planet orders create --name "my order" \ --id 20151119_025740_0c74,20151119_025741_0c74 \ --bundle visual --item-type psscene --clip '{ "type": "Polygon", "coordinates": [ [ [ -163.828125, -44.59046718130883 ], [ 181.7578125, -44.59046718130883 ], [ 181.7578125, 78.42019327591201 ], [ -163.828125, 78.42019327591201 ], [ -163.828125, -44.59046718130883 ] ] ] }' Alternatively, you can specify a file that contains your GeoJSON AOI using the `@` notation, e.g. `--clip @path/to/aoi.json`. It should be noted that if the clip AOI you specify does not intersect with the items in `--id` or `--ids_from_search` you may end up with a zero result order. If some of the items intersect, you will receive those items. The Orders API allows you to specify a toolchain of operations to be performed on your order prior to download. To read more about tools & toolchains, visit `the docs `_ . To add tool operations to your order, use the `--tools` option to specify a json-formatted file containing an array (list) of the desired tools an their settings. .. note:: The json-formatted file must be formatted as an array (enclosed in square brackets), even if only specifying a single tool For example, to apply the 3 tools `TOAR -> Reproject -> Tile` in sequence to an order, you would create a `.json` file similar to the following:: [ { "toar": { "scale_factor": 10000 } }, { "reproject": { "projection": "WGS84", "kernel": "cubic" } }, { "tile": { "tile_size": 1232, "origin_x": -180, "origin_y": -90, "pixel_size": 0.000027056277056, "name_template": "C1232_30_30_{tilex:04d}_{tiley:04d}" } } ] Similarly, you can also specify cloud delivery options on an order create command with the `--cloudconfig ` option. In this case, the json file should contain the required credentials for your desired cloud storage destination, for example:: { "amazon_s3":{ "bucket":"foo-bucket", "aws_region":"us-east-2", "aws_access_key_id":"", "aws_secret_access_key":"", "path_prefix":"" } You can find complete documentation of Orders API cloud storage delivery and required credentials `in the docs here `_. Integration With Other Tools ---------------------------- The output of search results is valid GeoJSON so these can be piped into a file or tool. Create a `gist` using the `gist `_ command:: planet data search --item-type psscene --limit 100 | gist -f latest-scenes.geojson Searching Using a Shapefile ........................... Searching an area of interest described by a Shapefile, can be accomplished by chaining commands with `Fiona `_.:: $ fio dump santiago-de-chile.shp | planet data search --item-type psscene --geom @- Note: the `@-` value for `--geom` specifies reading from stdin Extracting Metadata Fields .......................... Using jq_, useful information can be parsed from data returned by the Planet API. .. code-block:: bash $ planet data search --item-type psscene --limit 100 | jq -r ".features[].id" 20150707_160055_090b 20150707_160054_090b 20150707_160053_090b 20150707_160051_090b 20150707_160050_090b 20150707_160048_090b 20150707_160047_090b 20150707_160046_090b ... Search Overlapping Imagery .......................... Querying for Planet scenes that overlap another data source is easily accomplished by using `Rasterio `_. Given that this Landsat scene was taken on April 14, 2015, it might be useful to search for Planet scenes that were taken in a similar timeframe. .. code-block:: bash $ rio bounds LC82210682015104LGN00_B1.TIF | planet data search --item-type psscene --geom - --date acquired gt 2015-04-12 --date acquired lt 2015-04-14