Friday, March 6, 2020

OPUS Update for February 2020 - Search by Regular Expression, New Multiple Target List Field

Happy February everyone! We at the PDS Ring-Moon Systems Node hope that you and your loved ones are safe and that your lives have not been unduly disrupted by recent events.

This month we have two big new features for you, as well as a couple of small ones:

  • The ability to search on string fields using regular expressions
  • A new Multiple Target List field for searching on targets in the field of view
  • Tooltips are now available on touchscreen-only devices
  • You can copy-and-paste the green hinting numbers

Regular Expressions


There are a variety of ways to search for strings:

  • contains - The metadata field contains the search string somewhere within it
  • begins - The metadata field starts with the search string
  • ends - The metadata field ends with the search string
  • matches - The metadata field matches the search string exactly
  • excludes - The metadata field does not contain the search string

To these we have added a new one:

  • regex - The metadata field matches the given regular expression

For example, let's say you would like to search for all COISS volumes 2013 thru 2018. Before you would've needed to use the recently-added multiple search functionality:



but now you can simplify it into a single search:


We implemented regular expressions using the full-featured ICU library, which supports just about every regular expression feature you could want. For example, you could use "(?!COISS_2015)COISS_201[3-8]" to search for every volume COISS_2013 thru COISS_2018 except for COISS_2015. Please note that, by default, regular expressions are not anchored and the search string can appear anywhere in the metadata field. If you want to make sure that the regular expression is the only thing in the field, you can start it with "^" (anchor left) and end it with "$" (anchor right): "^COISS_201[3-8]$". Also, string fields now support input validation just like numeric fields do. If you select the "regex" query type, then your regular expression will be validated as you type it. An illegal regular expression (for example mismatched parentheses) will have a yellow border until you fix it; a legal regular expression will have a green border.

The Multiple Target List Field


There is a new field under Surface Geometry Constraints called Multiple Target List. For every observation for which surface geometry is available (currently Cassini ISS, UVIS, and VIMS, New Horizons LORRI, and Voyager ISS) this field contains a comma-separated list of every body in the field of view in alphabetical order. For example, if an image contains Rhea, Tethys, and Saturn, the field will be "RHEA,SATURN,TETHYS". There are two main uses for this. The first is for easily displaying what body(ies) you are looking at in an observation. For this you can add Multiple Target List to your Selected Metadata. The second is for searching for observations that contain specific bodies. For example, there are Cassini ISS images containing only Rhea and Tethys. To search for them, you could use "RHEA,TETHYS" with the "matches" query type.

You can also combine the Multiple Target List field with regular expression searching to get more sophisticated searches. If you would like every image that contains exactly two bodies, you can use "^\w+,\w+$". If you want one of those bodies to be Rhea, you could do two searches, one on "^RHEA,\w+$" and the other on "^\w+,RHEA$". Here is an example of a search for all Cassini ISS images that contain Rhea plus one other body, where that other body is not Saturn, and where Rhea is reasonably-sized in the image (resolution 3-10 km/pixel):




As always, we welcome your feedback, comments, and questions and look forward to hearing from you.

No comments:

Post a Comment