.. _global_locrouter: ######### LocRouter ######### Meta locator routing location requests of picks and origins to actual locator implementations. Description =========== Router is a meta locator which selects an actual :ref:`locator ` based on region profiles configured in GeoJSON or BNA files. The locator supports both, the initial location based on a pick set and the relocation based on an existing origin. In case no origin is available an initial solution is calculated by a configurable locator followed by a relocation configured through region profiles. Setup ===== The Router locator offers configuration by global module parameters. Plugin ------ Add the plugin ``locrouter`` to :confval:`plugins` for activating the Router locator. Example: .. code-block:: sh plugins = ${plugins},locrouter Initial locator --------------- For routing, an initial source location is required. When only picks but no origins are provided, the initial location is unknown but it can be defined by an initial locator independent of location. Set :confval:`RouterLocator.initial.locator` and :confval:`RouterLocator.initial.profile` for defining the initial locator. Region Configuration -------------------- Regions may be considered by configuring their names in :confval:`RouterLocator.regions`. The regions themselves are defined as polygons files in either :ref:`GeoJSON ` or :ref:`BNA ` format. Supported polygon attributes are: * name (recommended): Name of polygon. An empty string is assumed if not given. * locator (mandatory): Name of the locator interface to use. * profile: Name of the locator-specific profile which must be configured according to the selected locator. * minDepth: Minimum depth in km the profile should be applied to. * maxDepth: Maximum depth in km the profile should be applied to. The configured features are sorted by rank and area. Larger ranks and smaller areas are prioritized. Example :ref:`GeoJSON file`: .. code-block:: json { "type": "FeatureCollection", "features": [ { "type": "Feature", "properties": { "name": "Iceland", "minDepth": 0, "maxDepth": 30, "locator": "LOCSAT", "profile": "iceland" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -24.5469, 63.3967 ], [ -13.4958, 63.3967 ], [ -13.4958, 66.5667 ], [ -24.5469, 66.5667 ], [ -24.5469, 63.3967 ] ] ] } }, { "type": "Feature", "properties": { "name": "World", "locator": "LOCSAT", "profile": "iasp91" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -33, 90 ], [ -180, 90 ], [ -180, -90 ], [ -33, -90 ], [ 33, -90 ], [ 180, -90 ], [ 180, 90 ], [ 33, 90 ], [ -33, 90 ] ] ] } } ] } Example :ref:`BNA file`: .. code-block:: properties "Iceland", "rank 1", "minDepth: 0, maxDepth: 30, locator: LOCSAT, profile: iceland", 4 -24.5469, 63.3967 -13.4958, 63.3967 -13.4958, 66.5667 -24.5469, 66.5667 "World", "rank 1", "locator: LOCSAT, profile: iasp91", 8 -33, 90 -180, 90 -180, -90 -33, -90 33, -90 180, -90 180, 90 33, 90 Application =========== Once configured, the Router locator may be used by other |scname| modules such as :ref:`scolv` or :ref:`screloc`. Refer to the locator as "Router". .. _global_locrouter_configuration: Module Configuration ==================== .. note:: **RouterLocator.\*** *Locator parameters: Router. This locator requires the plugin* *"locrouter" to be loaded.* .. confval:: RouterLocator.regions Type: *string* A GeoJSON or BNA file defining locator profiles by region. Supported polygon attributes: name: Name of polygon locator: Name of the locator interface profile: Name of the locator specific profile minDepth: Minimum depth in km maxDepth: Minimum depth in km .. note:: **RouterLocator.initial.\*** *Configuration of initial locator used to create an* *initial solution based on a pick set. If a solution is* *found, relocate of the actual locator configured in the* *region file is invoked.* .. confval:: RouterLocator.initial.locator Type: *string* Name of the initial locator interface, e.g., LOCSAT. .. confval:: RouterLocator.initial.profile Type: *string* Profile name of the initial locator, e.g., iasp91.