planet-client-python
planet-client-python copied to clipboard
pre-validate band math tool entries
Is your feature request related to a problem? Please describe.
Creating an order with invalid band math entries results in the order being run for several minutes before the order finally fails. There is no pre-validation.
Describe the solution you'd like
Pre-validate band math entries before an order is run. This would likely happen in the band_math tool itself.
Describe alternatives you've considered
Additional context Here's an order request with an invalid band math entry for b2.
{
"name": "name",
"products": [
{
"item_ids": [
"20230322_161237_04_24ca"
],
"item_type": "PSScene",
"product_bundle": "analytic_udm2"
}
],
"tools": [
{
"bandmath": {
"b1": "2*b1",
"b2": "3*before",
"pixel_type": "Auto"
}
}
]
}
pre-validation could occur on a test 1x1xnum_bands numpy array, using regex to replace e.g. b1 with test_array[:,:,0] then run the expression and look for errors. note: requires numpy, which is currently not a dependency
for now, hold off on this to discuss a broader strategy for pre-validation of various tools although this is probably the tool that would benefit from pre-validation the most
This still seems reasonable enough to do using AST parsing