> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kinetica.com/llms.txt
> Use this file to discover all available pages before exploring further.

# /filter/byseries

```
URL: http://<db.host>:<db.port>/filter/byseries
```

Filters objects matching all points of the given track (works only on track
type data).  It allows users to specify a particular track to find all other
points in the table that fall within specified ranges (spatial and temporal) of
all points of the given track. Additionally, the user can specify another track
to see if the two intersect (or go close to each other within the specified
ranges). The user also has the flexibility of using different metrics for the
spatial distance calculation: Euclidean (flat geometry) or Great Circle
(spherical geometry to approximate the Earth's surface distances). The filtered
points are stored in a newly created result set. The return value of the
function is the number of points in the resultant set (view).

This operation is synchronous, meaning that a response will not be returned
until all the objects are fully available.

## Input Parameter Description

<ParamField body="table_name" type="string">
  Name of the table on which the filter by track operation will be performed, in \[schema\_name.]table\_name format, using standard [name resolution rules](../../concepts/tables/#table-name-resolution). Must be a currently existing table with a [track](../../geospatial/geo_objects/) present.
</ParamField>

<ParamField body="view_name" type="string">
  If provided, then this will be the name of the view containing the results, in \[schema\_name.]view\_name format, using standard [name resolution rules](../../concepts/tables/#table-name-resolution) and meeting [table naming criteria](../../concepts/tables/#table-naming-criteria). Must not be an already existing table or view.

  The default value is ''.
</ParamField>

<ParamField body="track_id" type="string">
  The ID of the track which will act as the filtering points. Must be an existing track within the given table.
</ParamField>

<ParamField body="target_track_ids" type="array of strings">
  Up to one track ID to intersect with the "filter" track. If any provided, it must be an valid track ID within the given set.
</ParamField>

<ParamField body="options" type="map of string to strings">
  Optional parameters.

  The default value is an empty map ( \{} ).

  <Expandable title="options">
    <ParamField body="create_temp_table">
      If *true*, a unique temporary table name will be generated in the sys\_temp schema and used in place of input parameter *view\_name*. This is always allowed even if the caller does not have permission to create tables. The generated name is returned in *qualified\_view\_name*.

      The default value is `false`.

      The supported values are:

      * true
      * false
    </ParamField>

    <ParamField body="collection_name">
      \[DEPRECATED--please specify the containing schema for the view as part of input parameter *view\_name* and use [/create/schema](/content/api/rest/create_schema_rest) to create the schema if non-existent]  Name of a schema for the newly created view. If the schema is non-existent, it will be automatically created.
    </ParamField>

    <ParamField body="spatial_radius">
      A positive number passed as a string representing the radius of the search area centered around each track point's geospatial coordinates. The value is interpreted in meters. Required parameter.

      The minimum allowed value is `0`.
    </ParamField>

    <ParamField body="time_radius">
      A positive number passed as a string representing the maximum allowable time difference between the timestamps of a filtered object and the given track's points. The value is interpreted in seconds. Required parameter.

      The minimum allowed value is `0`.
    </ParamField>

    <ParamField body="spatial_distance_metric">
      A string representing the coordinate system to use for the spatial search criteria. Acceptable values are 'euclidean' and 'great\_circle'. Optional parameter; default is 'euclidean'.

      The supported values are:

      * euclidean
      * great\_circle
    </ParamField>
  </Expandable>
</ParamField>

## Output Parameter Description

The Kinetica server embeds the endpoint response inside a standard response structure which contains status information and the actual response to the query.  Here is a description of the various fields of the wrapper:

<ResponseField name="status" type="String">
  'OK' or 'ERROR'
</ResponseField>

<ResponseField name="message" type="String">
  Empty if success or an error message
</ResponseField>

<ResponseField name="data_type" type="String">
  'filter\_by\_series\_response' or 'none' in case of an error
</ResponseField>

<ResponseField name="data" type="String">
  Empty string
</ResponseField>

<ResponseField name="data_str" type="JSON or String">
  This embedded JSON represents the result of the /filter/byseries endpoint:

  <Expandable title="data_str">
    <ResponseField name="count" type="long">
      The number of records passing the series filter.
    </ResponseField>

    <ResponseField name="info" type="map of string to strings">
      Additional information.

      The default value is an empty map ( \{} ).

      <Expandable title="info">
        <ResponseField name="qualified_view_name">
          The fully qualified name of the view (i.e. including the schema).
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>

  Empty string in case of an error.
</ResponseField>
