Package: porder
porder: Simple CLI for Planet ordersV2 APIDisclaimer: This is an unofficial tool. Is not licensed or endorsed by Planet Labs. It was created by Samapriya Roy and is owned and maintained by Tyson SwetnamOrders v2is the next iteration of Planet's API for getting Analysis Ready Data (ARD) delivered to you. Orders v2 has the capability to submit any number of images in a batch order and perform operations such as: top of atmospheric (TOA) reflectance, compression, coregistration, and supports enhanced notifications such as email and webhooks. Based on your personal license access you can use theporderto place orders, download orders, or chain together a sequence of operations from the Orders v2 API. Thepordertool runs on the command line interface only. For exporting to cloud storageporderuses a configuration folder withconfig.ymlstructures.If you use this tool to download data and find it useful please star us on GitHub (top right corner of this page).If you publish research which used this tool, please use this citation:Samapriya Roy, Tyson L. Swetnam, Isabella (Izzi) Hinks, Ryan Avery, David Shean, Anthony Lukach, & Scott Henderson. (2021, July 7).
tyson-swetnam/porder: porder: Simple CLI for Planet ordersV2 API (Version 0.8.3). Zenodo. http://doi.org/10.5281/zenodo.5079783Read the Guided Docs hereTable of contentsPrerequisitesInstalling porderWindows SetupGetting startedporder Simple CLI for Planet ordersv2 APIporder readmeporder quotabase64convert to geojsonsimplifyidlistdifflistidsplitidcheckbundlesorderreordercancelorderstate listordersizestatsdownloadmultipart downloadmultiprocessing downloadPrerequisitesYou must have native python & pip installed. You can test this by going to the terminal (or windows command prompt) and trying.python --versionand thenpip listIf you have no errors and you have Python3.6+or higher you should be good to go.We also recommend installation within virtual environment. If you useConda$ conda create -n planet_orders python
$ conda activate planet_ordersThepordertool is dependent onshapelyandfionawhich depend on GDALQGISis a useful open-source GIS platform which includes all of the major required dependencies for runningporder. Installation of QGIS will ensure allporderrequirements are met.LinuxInstalling Python GDAL in Ubuntu$ sudo add-apt-repository ppa:ubuntugis/ppa && sudo apt-get update
$ sudo apt-get install gdal-bin libcurl4-openssl-dev libssl-dev python3-gdalWindowsWe also recommend usingWindows Subsystem for Linux 2and following the linux instructions.For Windows thisguidefrom UCLA is useful.MacOS XKyngChaosmaintains a MacOS X installation for GDALInstall GDAL using [brew]Install brew:/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"Install GDAL:% brew install gdal --HEAD
% brew install gdal
% gdal-config --versionInstall GDAL Python binding:% pip3 install â€”-upgrade pip
% pip3 install numpy
% python3 -c â€˜import gdal; print(gdal.VersionInfo())â€™DockerYou can also runporderwithDocker$ docker pull tswetnam/porder:latestIf you haven't runplanet initto create your token, do so first. Make sure to run docker with the volume flag mounted back to your home${HOME}or current working directory${PWD}:$ docker run -it --rm -v ${HOME}:/root tswetnam/porder:latest planet initcheck if you now have a private.planet.jsonfile in your home or current working directory.Runporderas a test:$ docker run -it --rm -v ${HOME}:/root tswetnam/porder:latest porder quotaThis should return your user information and the remaining available km of data:Subscription ID: XXXXX
Plan ID: XXXXX
Allocation Name: your@email.address
Allocation active from: YEAR-MM-DD
Quota Enabled: True
Total Quota in SqKm: 10000
Total Quota used: 0.0
Remaining Quota in SqKm: 10000.0Installing porderOnce you have the dependency libraries configured you're ready to installFrompip:pip install porderFor linux it might help to specify the pip type and use--userpip3 install porder --userFrom GitHubsource:git clone https://github.com/tyson-swetnam/porder.git
cd porder
python setup.py installTypeporder -hto view the helpWindows SetupShapely and a few other libraries are notoriously difficult to install on windows machines so follow the steps mentioned herebefore installing porder. You can download and install shapely and other libraries from theUnofficial Wheel files from heredownload depending on the python version you have.Do this only once you have install GDAL. I would recommend the steps mentioned above to get the GDAL properly installed. However I am including instructions to using a precompiled version of GDAL similar to the other libraries on windows. You can test to see if you have gdal by simply runninggdalinfoin your command prompt. If you get a read out and not an error message you are good to go. If you don't have gdal try Option 1,2 or 3 in that order and that will install gdal along with the other librariesOption 1:Starting from porder v0.4.5 onwards:Simply runporder -hafter installation. This should go fetch the extra libraries you need and install them. Once installation is complete, the porder help page will show up. This should save you from the few steps below.Option 2:If this does not work or you get an unexpected error try the following commands. You can also use these commands if you simply want to update these libraries.pipwin refresh
pipwin install gdal
pipwin install pyproj
pipwin install shapely
pipwin install fiona
pipwin install geopandasOption 3For windows first thing you need to figure out is your Python version and whether it is 32 bit or 64 bit. You can do this by going to your command prompt and typing python.For my windows machine, I have both 32-bit python 2.7.16 and 64-bit Python 3.6.6. You can get the python version at the beginning of the highlighted lines and the 32 or 64 bit within the Intel or AMD64 within the square brackets. Your default python is the one you get by just typing python in the command line. Then download the following packages based on the information we collect about our python type in the earlier step. We use unofficial binaries to install these. This step is only needed if you are on a windows machine if you are using a setup manager like anaconda youmightbe able to avoid this setup completelyAt this stageif you were unable to install gdal then download the gdal binaries first, install that before everything elsegdal:https://www.lfd.uci.edu/~gohlke/pythonlibs/#gdalThen follow along the following librariespyproj:https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyprojshapely:https://www.lfd.uci.edu/~gohlke/pythonlibs/#shapelyfiona:https://www.lfd.uci.edu/~gohlke/pythonlibs/#fionageopandas:https://www.lfd.uci.edu/~gohlke/pythonlibs/#geopandasTo choose the version that is correct for you use the python information you collected earlier
For example for my python 3.6.6 and AMD 64 if I was installing shapely I would choose the following, here 36 means python 3.6 and amd64 refers to the 64bit we were talking about.Shapelyâ€‘1.6.4.post2â€‘cp36â€‘cp36mâ€‘win_amd64.whlYou will get a wheel file or a file ending with .whl. You can now simply browse to the folder or migrate to it in your command prompt. Once there if I am installing for my python 3.6 the command was. At this point we will make use of our trusted package installer that comes with python called pip. Note the choice of pip or pip3 depends on your python version usually you can get the pip to use with your python by typingpip3 -Vyou get a readout like thispip 18.1 from c:\python3\lib\site-packages\pip (python 3.6)if you have pip just replace that withpip -VThen simply install the wheel files you downloaded using the following setuppip3 install full path to Shapelyâ€‘1.6.4.post2â€‘cp36â€‘cp36mâ€‘win_amd64.whl

in my case that would be

pip3 install "C:\Users\samapriya\Downloads\Shapelyâ€‘1.6.4.post2â€‘cp36â€‘cp36mâ€‘win_amd64.whl"Or you can useanaconda to install. Again, both of these options are mentioned onShapelyâ€™s Official PyPI page.Getting startedMake sure you initialized planet client by typingplanet init. As usual, to print help:To obtain help for a specific functionality, simply call it withhelpswitch, e.g.:porder idlist -h. If you didn't install porder, then you can run it just by going toporderdirectory and runningpython porder.py [arguments go here]porder Simple CLI for Planet ordersv2 APIThe tool is designed to simplify using the ordersv2 API and allows the user to chain together tools and operations for multiple item and asset types and perform these operations and download the assets locally.porder readmeNow open the readme webpage in your browser usingporder readmeporder quotaJust a simple tool to print your planet subscription quota quickly.base64This does exactly as it sounds, it encodes your credential files to base64 for use with gcs.convert to geojsonThis tool allows you to convert from a folder with multiple shapefiles or kml files to a folder with geojson that can then be used with the tool. It makes use of geopandas and reprojects your shapefile to make it compatible while passing onto the API for search and download. KML conversions are handled seperately.simplifyThis reduces the number of vertices for a multi vertex and complex GeoJSON. Extremely high vertex count (over 500) seem to fail and hence this tool allows you to export a new geojson with reduced vertices. It uses an implementation of the Visvalingam-Wyatt line simplification algorithm. This tool does work with and without Fiona, but Fiona installation is recommended.idlistCreate an idlist for your geometry based on some basic filters,including geometry, start and end date and cloud cover. If no cloud cover is specified everything form 0 to 100% cloud cover is included. For now the tool can handle geojson,json and kml files. The output is a csv file with ids. The tool also allows you to make sure you get percentage overlap, when selecting image, for clip operations adjust it accordingly (usally --ovp 1 for orders not to fail during clip). The tool now also prints estimated area in Square kilometes for the download and estimated area if you clipped your area with the geometry you are searching (just estimates). You can now pass multiple assetswith the idlist tool pass assets as analytic_sr,udm2 for example to get items with both these assets ``` --asset analytic_sr,udm2.I have changed the setup to now do the following two thingsThe number option is optional, so it can look for all images in the time range, but be careful if the area is too large,use at own risk. A better option is to supply the number.It is possible to often forget about the different asset types, so you can now not pass an item and the script will return every possible type of asset for each item type depending on the bundle.A simple setup would beTo run an experiment to add additional filter, you can now pass an additional string or range filter or both flag for string and range filters, a setup would be. The additional filters are optionalporder idlist --input "Path to geojson file" --start "YYYY-MM-DD" --end "YYYY-MM-DD" --item "PSScene4Band" --asset "analytic" --outfile "Path to idlist.csv" --filters range:clear_percent:55:100 --number 20

porder idlist --input "Path to geojson file" --start "YYYY-MM-DD" --end "YYYY-MM-DD" --item "PSScene4Band" --asset "analytic" --outfile "Path to idlist.csv" --filters string:satellite_id:"1003,1006,1012,1020,1038" --number 20

porder idlist --input "Path to geojson file" --start "YYYY-MM-DD" --end "YYYY-MM-DD" --item "PSScene4Band" --asset "analytic" --outfile "Path to idlist.csv" --filters string:satellite_id:"1003,1006,1012,1020,1038" range:clear_percent:55:100 --number 20The idlist tool can now use a multipolygon and iteratively look for scenes.Getting an idlistCreate an idlist for your geometry based on some basic filters,including geometry, start and end date and cloud cover. If no cloud cover is specified everything form 0 to 100% cloud cover is included. For now the tool can handle geojson,json and kml files. The output is a csv file with ids. The tool also allows you to make sure you get percentage overlap, when selecting image, for clip operations adjust it accordingly (usally --ovp 1 for orders not to fail during clip). The tool now also prints estimated area in Square kilometes for the download and estimated area if you clipped your area with the geometry you are searching (just estimates).I have changed the setup to now do the following two thingsThe number option is optional, so it can look for all images in the time range, but be careful if the area is too large,use at own risk. A better option is to supply the number.It is possible to often forget about the different asset types, so you can now not pass an item and the script will return every possible type of asset for each item type depending on the bundle.A simple setup would beTo run an experiment to add additional filter, you can now pass an additional string or range filter or both flag for string and range filters, a setup would be. The additional filters are optionalporder idlist --input "Path to geojson file" --start "YYYY-MM-DD" --end "YYYY-MM-DD" --item "PSScene4Band" --asset "analytic" --outfile "Path to idlist.csv" --filters range:clear_percent:55:100 --number 20

porder idlist --input "Path to geojson file" --start "YYYY-MM-DD" --end "YYYY-MM-DD" --item "PSScene4Band" --asset "analytic" --outfile "Path to idlist.csv" --filters string:satellite_id:"1003,1006,1012,1020,1038" --number 20

porder idlist --input "Path to geojson file" --start "YYYY-MM-DD" --end "YYYY-MM-DD" --item "PSScene4Band" --asset "analytic" --outfile "Path to idlist.csv" --filters string:satellite_id:"1003,1006,1012,1020,1038" range:clear_percent:55:100 --number 20The search tool now allows the user to pass Hours , Minutes and seconds and utilizes the local timezone on the users computer to search. This including the format HH:MM:SS seperated from yyyy-mm-dd by T. An example would be the following, while noting that passing time is purely optional and you can still search by simply passing YYYY-MM-DD.porder idlist --input "Path to geojson file" --start "yyyy-mm-ddTHH:MM:SS" --end "yyyy-mm-ddTHH:MM:SS" --item "PSScene4Band" --asset "analytic" --outfile "Path to idlist.csv" --filters range:clear_percent:55:100 --number 20

porder idlist --input "Path to geojson file" --start "2021-01-01T14:12:10" --end "2021-03-01T16:20:20" --item "PSScene4Band" --asset "analytic" --outfile "Path to idlist.csv" --number 20The idlist tool can now use a multipolygon and iteratively look for scenes.difflistIt is possible you already downloaded some images or metadata files, and your you want a difference idlist to create orders for only assets and item types you do not have. It takes in your local folder path, type image or metadata and some basic filters,including geometry, start and end date and cloud cover. If no cloud cover is specified everything form 0 to 100% cloud cover is included. For now the tool can handle geojson,json and kml files. The output is a csv file with ids.A simple setup would beor without the cloud filteridsplitThis allows you to split your idlist into small csv files incase you wanted to created batches of orders.A simple setup would beidcheckIt is possible for you to modify the idlist, add or remove ids. Once done, this tool allows you to estimate the total area of images and area that intersect with your geometry or area if clipped.A simple setup would bebundlesOrdering using ordersv2 uses the concept of bundles. A bundle is a combination of multiple assets for an item that come together and are delivered as part of the overall fulfillment of the order. For example an analytic asset for PSScene4Band is a single tif file, however the analytic bundle for PSScene4Band includes analytic tiff file, the analytic_xml metadata and the udm data mask file as part of the bundle. You can find more information aboutbundles here. Thus the concept of bundles bring together single function to order and download multiple related assets. Since the list of bundles is long, this tool simply allows you to get every bundle type based on item type. The setup is simpleA simple setup would beporder bundles --item "PSScene4Band"orderThis tool allows you to actually place the order using the idlist that you created earlier. the--opargument allows you to take operations, delivery and notifications in a sequence for example--op toar clip emailperforms Top of Atmospheric reflectance, followed by clipping to your geometry and send you an email notification once the order has completed, failed or had any any change of status. An important changes is the concept of passing bundles instead of using assets. Bundles are predefined meaning all assets in a bundle are not available for an item your attempt at downloading that attempt will fail.For example if an item id '20181227_125554_0f4c' does not have surface reflectance asset type. So if you try to download this using bundle type analytic_sr_udm2 it will not work, similary if you order an item where a specific operation cannot be performed for example if you order visual and then try to do bandmath with four bands. These examples and more are wherefallback bundlescome in handy. Think of this as providing a list of bundles to keep trying if one bundle type fails. The priority goes left to right. You can provide comma seperated fallback bundles for example asanalytic_sr_udm2,analyticinstead ofanalytic_sr_udm2to avoid certain items from failing to download.The list of operations for the--opare below and ** the order of these operations is important**opdescriptionclipClip imagery can handle single and multi polygon verify or create geojson.iotoarTop of Atmosphere Reflectance imagery generated for imageryharmonizeHarmonize Dove R (instrument type PS2.SD) data to classic dove (instrument type PS)compositeComposite number of images in a given orderzipZip bundles together and creates downloads (each asset has a single bundle so multiple zip files)zipallCreate a single zip file containing all assetscompressionUse image compressionprojectionReproject before downloading imageawsOption called to specify delivery to AWSazureOption called to specify delivery to AZUREgcsOption called to specify delivery to GCSemailEmail notification to your planet registered emailanchorAnchor image id for coregistrationformatDelivery format choose from COG/PL_NITF to use for the format toolgeeprovide gee-project,gee-collectionYou can now add some predefined indices for PlanetScope 4 band items with a maximum of 5 indices for a single setup . This is experimental. The list of indices includeIndexSourceSimple ratio (SR)Jordan 1969Normalized Difference Vegetation Index (NDVI)Rouse et al 1973Green Normalized Difference Index (GNDVI)Gitelson et al 1996Blue Normalized Difference Vegetation Index (BNDVI)Wang et al 2007Triangular Vegetation Index (TVI)Broge and Leblanc 2000Transformed Vegetation Index (TVI)Deering et al 1975Optimized Soil Adjusted Vegetation Index (OSAVI)Rondeaux et al 1996Enhanced Vegetation Index (EVI2)Jian et al 2008Normalized Difference Water Index (NDWI)McFeeters 1996Modified Soil-adjusted Vegetation Index v2 (MSAVI2)Qi 1994A simple setup with image clip with email notification would beThe same setup with delivery of each image, its metadata as a zip file would be. Note how we only added zip to the op listA simple setup with Top of Atmosphere reflectance and a few indices along with email notification would beA simple setup withGoogle Earth Engine Deliveryand a few indices along with email notification would bereorderThis tool allows you to reorder an existing order with the same item ids and tools. This is trying to look into the overall structures of existing orders and maybe useful to reorder if an order fails for example.usage: porder reorder [-h] --url URL [--notification NOTIFICATION]

optional arguments:
  -h, --help            show this help message and exit

Required named arguments.:
  --url URL             Order url to be ordered

Optional named arguments:
  --notification NOTIFICATION
                        Use "email" to get an email notificationcancelYou can cancel a queued order or cancel all queued orders, before the status changes to running. Simply put you can cancel a specific order before it starts running or cancel all of your queued orders.usage: porder cancel [-h] [--id ID]

optional arguments:
  -h, --help  show this help message and exit
  --id ID     order id you want to cancel use "all" to cancel allSetup to cancel an orderporder cancel --id "orderid goes here"to cancel all queued ordersporder cancel --id "all"orderstate listThis tool allows you to get the list of orders based on the states and based on the start and end dates of orders. For example if you want to find out all orders that failed within the week you can use this tool to check that.usage: porder ostate [-h] [--state STATE] [--start START] [--end END]
                     [--limit LIMIT]

optional arguments:
  -h, --help     show this help message and exit
  --state STATE  choose state between queued| running | success | failed |
                 partial
  --start START  start date in format YYYY-MM-DD
  --end END      end date in format YYYY-MM-DD

Optional named arguments:
  --limit LIMIT  Limit the maximum table sizeThe setup to check failed orders would be for example the following, You can place a limit on the number of orders to get by using --limitporder ostate --state failed --start 2019-11-01 --end 2019-11-20ordersizeThe tool now allows you to estimate the total download size for a specific order.An example setup look like the followingstatsThe tool allows you to check on number of running and queued orders for both organization and user level. Using this is simpleporder statsoutput should look like this:Checking on all running orders...
Total queued order for organization: 0
Total running orders for organization: 1

Total queued orders for user: 0
Total running orders for user: 0downloadThe allows you to download the files in your order, to a local folder. It uses the order url generated using the orders tool to access and download the files.multipart downloadThe allows you to multipart download the files in your order, this uses a multiprocessing downloader to quickly download your files to a local folder. It uses the order url generated using the orders tool to access and download the files.multiprocessing downloadThe uses the multiprocessing library to quickly download your files to a local folder. It uses the order url generated using the orders tool to access and download the files and includes an expotential rate limiting function to handle too many requests. To save on time it uses an extension filter so for example if you are using the zip operation you can use ".zip" and if you are downloading only images, udm and xml you can use ".tif" or ".xml" accordingly. For python 3.4 or higher, this switches to using an true async downloader instead of using multiprocessing.A simple setup would beChangelogv0.8.5Fixed minor issue with import error checking for GDALv0.8.4ResolvedIssue 49Download now contains manifest.json for cross checking deliveryv0.8.3Fixed bundle parsingUpdated based bundlesv0.8.2Pull request 48fixes typos and equations for bandmath and includes additional reference informationincreased pipwin check time to 60+ daysadded better version check and handlingupdated license date and minor fixesv0.8.1Search function can now parse date and time. Enhancement fromIssue 47Updated readme site to include search examplesStability test across python3.7 to 3.9 and for all os typespipwin checks cache every one monthv0.8.0Added gee-integration exampleUpdated readme site to include examplesv0.7.9Added gee-integration tool to orderGeneral improvementsv0.7.8Added support for multipolygon search and clip.Added coregistration and format tools to orderRemoved persistent version printOverall cleanup and general Improvementsv0.7.7Removed dependency on pendulum and general cleanup.v0.7.6Now use multiple assets with the idlist tool pass assets as analytic_sr,udm2 for example to get items with both these assets.Updated readme.v0.7.5Fixed pipwin python path for installer.idlist tool now only returns standard and excludes beta and test quality.v0.7.4added smart check on partially completed order for reordering.completed orders can be reordered as wellv0.7.3Now constantly checks for updated version incase your porder version is not updated.Added a reorder tool for users to reorder an exiting order or failed order.v0.7.1ID check tool now works with/without geometry, pass an idlist, and item and asset type to check.Order size tool is optimized for speed.pipwin tool uploaded to v0.5.0 to handle windows packages.Overall general improvements.v0.7.0Now estimates total download size before downloading.Fixed issue with downloading single archive zip files.v0.6.9Updated readme to do bulk conversion from Shapefile and KML to geojson.Fixed issues with bundles read and update.v0.6.8Fixed issues with direct usage of kml to get idlist.Combined convert tool to convert folders with shapefiles and kml to geojsons.v0.6.6-v0.6.7Fixed downloader for pipwin forrelease >= 0.4.8Improved overall package installation for windowsCheck pipwin import version to get release 0.4.9v0.6.5Added bundles check function to get latest bundles fromdevelopers page.v0.6.4Pull requestfixed issue with pipwin installation.v0.6.2Fixed issue with werkzeug and pipwin implementation.Changed default overlap to 0.01Fixed issue with YAML loader implementation.General improvements.v0.6.1Added cancel order and bulk cancel orders toolsv0.6.0Fixed base64 encoding for GCS credentials for python 3.Re-release of python 3 only supported version. Use upto version 0.5.7 only for Python 2.v0.5.9No more deperecation or future warnings from pyprojIssue 40porder searchis fasterPython 2.7 will reach the end of its life on January 1st, 2020. No more python 2 support from v0.5.9v0.5.8Handles python version while installing pipwinNow open readme page in browser usingporder readmev0.5.7Fixed arg readout if no argument is passed to CLI.Issue 39.Updated requirements to include DateTimeRangeFixed issue with GDAL~=3 requirement for fiona 1.8.11 release.v0.5.6Mergedpull request 38to allow for nested delivery of zip files to cloud storage.Added an order state list tool.v0.5.5Better file check for skipping download requests.Improvements to multiprocessing and async downloader.General improvements to stability and performance.v0.5.4Updated bundles.json.Merged pull request toupdate bundles.v0.5.3Updated order status.Check existing files before attempting redirect url and download.Overall optimization for faster check and updated readme for fallback bundles.v0.5.2Added harmonization tool to harmonize PS2.SD to PS2.Improvements and error handling to quota toolMergedpull request 35to keep download progress via enumerate.v0.5.1Added utf-8 encoding for shapefile to geojson conversionMergedpull request 34to refresh url once expired.v0.4.9Fixed issue with gdal import for pipwin windows.Fixed import issue with stats endpoint.v0.4.8Replaced concurrency check with stats endpoint to get queued and running orders.Change pipwin cache refresh time to two weeks.v0.4.7Fixed issue with queuing state for orders and downloads.v0.4.6Handles refreshing pipwin cache and better error handlingFixed issue with downloading unique manifest ID for zip files.Updated ReadMe with improved documentation.v0.4.5Handles installation of windows specific libraries usingpipwin.General improvementsv0.4.4Manifest files for each asset is now written in format ItemID_manifest.json to avoid skipping manifest.json common file name.Simple and multipart downloader now show number of items remaining during the download.General improvements, bundles tool now prints Bundles:Name followed by assets included in the bundlev0.4.3Fixed issues with setup.py and pyproj version.Improved ReadMe instructions.v0.4.2Added geometry check functionality to multipolygon with shapely self intersectionIssue 30.For multipolygons this also performs a vertex count check and simplifies polygon to fit under 500 vertices.General improvementsv0.4.1Fixed issue with shapely self intersection using buffer(0).General improvementsv0.4.0Fixed issue with placing reprojection request.Downloader can now download partial as well as completely successful orders.Added retry method for rate limit during downloadingGeneral improvementsv0.3.9Removed deprecated bundles from bundles list.Improved parameter descriptionv0.3.7Added capability to pass subscription id when submitting order.v0.3.6Replaced asset in order tool with bundles.Created a new bundles tool to generate bundle list for an item typeImprovements to the idlist tool now prints output as it makes progress.v0.3.5Better integration for quota toolUpdates information while waiting for idlistUpdated requirementsv0.3.4Added async downloader for python 3.4Checks for existing files before spawning processesBetter handling of multiprocessing outputAdded a quick version toolv0.3.3Fixed issue with order name when no ops are used.Used file basename for splitting the idlist.v0.3.2idlist tool can no use a multipolygon and iteratively look for scenesOrders clip tool can now handle multipolygon clipAdded new tool zipall to handle single archive download in format ordername_date.zipv0.3.1Can now support an additional string and range filterCheck total area and clip area estimates from any idlist using idcheck.General improvements to the tool.v0.3.0Enhances idlist to execute faster search and return using Planet CLIIncluded better error handling while placing order.v0.2.8Added tool to convert folder with shapefiles to GeoJSONsv0.2.7Improved overlap calculations for larger geometriesAdded a geometry simplification tool to reduce number of verticesv0.2.6Skysat area are calculated using EPSG:3857 to resolve metadata EPSG issueGeneral improvementsv0.2.5Fixed issue with area calculation estimatesGeneral improvementsv0.2.4Now functions without limit on the number of assets in the idlistParses possible asset types if only item type is supplied for idlistv0.2.3Now estimates area before and after clip when you run idlistGeneral improvementsv0.2.1Now exports only csv idlistFixed count with concurrency checkv0.2.0Fixed pysmartdl install issuesAdded concurrent orders checkversion and os resolve for shapelyv0.1.9Added msaviFixed issues with GeoJSON readv0.1.8Fixed issues with empty JSON appendGeneral improvements to the toolv0.1.7Added band math indices for PlanetScope itemFixed issues with retry for downloaderGeneral improvements to the toolv0.1.6Made fixes to have python 3.X compatabilityv0.1.5General improvements and bug fixesv0.1.4Fixed issue with Python 3 CSV write compatabilityFixed issues with Shapely instance issuev0.1.3Fixed issue with clipboard access in headless setupv0.1.2Fixed issue and extension for multiprocessing downloaderOverall general improvements to the toolv0.1.0Fixed issue and improved idlist and sortFixed issue with clip toolOverall general improvements to the toolv0.0.8Improvements to operations in order toolNow supports export to gcs/azure/aws along with kernel, projection and compressionbase64 encoding tool for encoding gcs credentialsOverall general improvements to the toolv0.0.7Now allows for all downloads or download using extensionPolling for order to complete and automatically downloadGeneral improvementsv0.0.6Merged contribution by David SheanFixed issues with op equals NoneFixed issues with relative importImproved Py3 compatabilityGeneral improvementsv0.0.5Added exponential backoff for pydlFixed issues with dependencyGeneral overall improvementsv0.0.4Created strict geoinstersection to avoid orders to failImprovements to overlap functionGeneral overall improvementsv0.0.3Added overlap function to idlistAdded multiprocessing downloader with rate limit and extension filterGeneral overall improvementsv0.0.2Fixed issues with import modules