Skip to content

v0.2.55..v0.2.56 changeset ConfigOptions.asciidoc

Garret Voltz edited this page Aug 14, 2020 · 3 revisions
diff --git a/conf/core/ConfigOptions.asciidoc b/conf/core/ConfigOptions.asciidoc
index 7eb99a3..7409fb8 100644
--- a/conf/core/ConfigOptions.asciidoc
+++ b/conf/core/ConfigOptions.asciidoc
@@ -24,7 +24,7 @@
 // contain any special characters.
 // === key.name
 //
-// * Data Type: <string, double, list, bool>
+// * Data Type: <string, double, list, bool, int, long>
 // * Default Value: <value>
 //
 // If the default value is for a list then the default value should be followed
@@ -137,6 +137,14 @@ addresses with the same house number.  e.g. when enabled, 23a Elm Street matches
 Allows address comparison to score addresses parsed from elements. This is generally only to be
 turned off when running certain unit tests which are incompatible with it being enabled.
 
+=== address.string.comparer
+
+* Data Type: string
+* Default Value: `hoot::ExactStringDistance`
+
+String comparison algorithm to use for address comparison during conflation. Must be an
+implementation of `StringDistance`.
+
 === address.tag.keys.file
 
 * Data Type: string
@@ -151,9 +159,9 @@ Flat file containing tag keys that make up feature address components.
 
 If true, Hootenanny will attempt to translate to English the value of any tag that is part of an
 address before normalizing it during conflation address matching (note that address normalization
-may involve some form of language translation even when this setting is).  This can have significant
-impact on the runtime performance of conflation when enabled and should only be enabled if the
-source data is known to have non-English addresses.  The configuration option,
+may involve some form of language translation even when this setting is disabled).  This can have
+significant impact on the runtime performance of conflation when enabled and should only be enabled
+if the source data is known to have non-English addresses.  The configuration option,
 'language.translation.translator', controls which translator is used.
 
 === address.use.default.language.translation.only
@@ -562,13 +570,28 @@ Flag to turn on throttling for OSM API changeset writes.  When turned on, each p
 will wait `changeset.api.writers.throttle.time` seconds after a successful write before submitting
 another changeset to the OSM API.
 
+=== changeset.apidb.writers.throttle.cgimap
+
+* Data Type: bool
+* Default Value: `false`
+
+Flag to turn on throttling if the OSM API uses CGImap in the back end instead of the rails port.
+Checks the usage of CGImap and then enables `changeset.apidb.writers.throttle`.
+
 === changeset.apidb.writers.throttle.time
 
 * Data Type: long
-* Default Value: `30`
+* Default Value: `10`
 
 The number of seconds after a successful write before submitting another changeset to the OSM API.
 
+=== changeset.apidb.writers.throttle.timespan
+
+* Data Type: long
+* Default Value: `0`
+
+The number of seconds plus or minus for random throttling of the OSM API writer.
+
 === changeset.description
 
 * Data Type: string
@@ -592,6 +615,14 @@ for conflation campaigns
 The maximum allowed element size of an OSM changeset that can be written to an OSM API database
 in a single changeset.
 
+=== changeset.metadata.allowed.tag.keys
+
+* Data Type: list
+* Default Value:
+** ``
+
+This allows for writing metadata tags to the changeset output.
+
 === changeset.replacement.allow.deleting.reference.features.outside.bounds
 
 * Data Type: bool
@@ -608,6 +639,13 @@ delete statements for reference features falling outside of `convert.bounding.bo
 If enabled, changeset replacement derivation will perform an extra element de-duplication step
 before calculating the changeset.
 
+=== changeset.replacement.implementation
+
+* Data Type: string
+* Default Value: `hoot::ChangesetReplacementCreator`
+
+Used for testing only.
+
 === changeset.replacement.mark.elements.with.missing.children
 
 * Data Type: bool
@@ -656,6 +694,19 @@ purposes.
 Set the circular error tag on features to this value, in meters, by default if the tag isn't already
 populated.
 
+=== circular.error.tag.keys
+
+* Data Type: list
+* Default Value:
+** `error:circular`
+** `accuracy`
+
+A list of tag keys whose values are known to contain circular error (CE; accuracy) data. Multiple
+values may be specified for situations where input data uses different circular error tag keys. If
+a feature contains more than one tag key from this list, only one of the values will be used. If
+this list is empty, no circular error will be parsed from input features and a the value defined by
++circular.error.default.value+ will be used for all features.
+
 === collection.relation.name.threshold
 
 * Data Type: double
@@ -770,6 +821,8 @@ List of operations to run in the conflate command after data is conflated, but b
 ** `hoot::RemoveRoundabouts`
 ** `hoot::MapCleaner`
 ** `hoot::HighwayCornerSplitter`
+** `hoot::RemoveInvalidReviewRelationsVisitor`
+** `hoot::RubberSheet`
 
 Runs in the conflate command after data is loaded. 'hoot info --operators' displays information
 about the available operations.
@@ -786,9 +839,9 @@ Enabling this option allows Hootenanny to remove any operators defined in `confl
 with the feature types being conflated as specified in the `match.creators` option. Doing so can
 increase runtime performance for some inputs. e.g. If you're only conflating buildings, then any
 operators used strictly for road data cleaning will be automatically disabled. This is primarily
-used for debugging purposes and should normally be left enabled. See the `FilteredByGeometryTypeCriteria`
-interface for information about determining which feature types are associated with conflate
-operators.
+used for debugging purposes and should normally be left enabled. See the
+`FilteredByGeometryTypeCriteria` interface for information about determining which feature types are
+associated with conflate operators.
 
 === conflate.review.threshold.default
 
@@ -802,6 +855,18 @@ See also:
 
  * _Estimate Pairwise Relationships_, <<hootalgo>>
 
+=== conflate.rubber.sheet.element.criteria
+
+* Data Type: list
+* Default Value:
+** `hoot::LinearWaterwayCriterion`
+** `hoot::LinearWaterwayWayNodeCriterion`
+** `hoot::PowerLineCriterion`
+** `hoot::PowerLineWayNodeCriterion`
+
+Determines which type of features are rubbersheeted during conflation when rubbersheeting is part
+of the conflation pre-operations. An empty list will rubbersheet all types of features.
+
 === conflate.stats.types
 
 * Data Type: string
@@ -870,13 +935,13 @@ ID of the node that ContainsNodeCriterion should search for.
 If specified, supporting readers will limit data read from the data source to only features that
 intersect the given bounding box. The format is "minx,miny,maxx,maxy" or
 "min_lon,min_lat,max_lon,max_lat" specified in the projection of the input data source.  This
-setting can be used with both the convert and conflate commands. See the documentation for more
-details.
+setting can be used with both the convert and conflate commands. See the command documentation for
+more details.
 
 Example Usage:
 
 ----
-hoot convert -D convert.bounding.box=106.851,-6.160,107.052,-5.913 input output
+hoot convert -D convert.bounding.box=106.851,-6.160,107.052,-5.913 input.osm output.osm
 ----
 
 === convert.bounding.box.hoot.api.database
@@ -1471,7 +1536,7 @@ If true, road conflation merges tag changes into the reference only and makes no
 * Data Type: double
 * Default Value: `0.999`
 
-The threshold at which a miss is called a miss for roads.
+The threshold at which a miss is called a miss for roads. Valid values are between 0.0 and 1.0.
 
 See also:
 
@@ -1482,8 +1547,7 @@ See also:
 * Data Type: double
 * Default Value: `0.25`
 
-The threshold at which a review is called a review for roads. See
-`conflate.review.threshold.default`.
+The threshold at which a review is called a review for roads. Valid values are between 0.0 and 1.0.
 
 See also:
 
@@ -2238,9 +2302,9 @@ option.
 Raise the Levenshtein score to this power before returning this result. If alpha is greater than
 1 then this makes low scores even lower. Valid values are > 0.
 
-The default alpha value of 1.15 was determined through experimentation with a Jakarta data set
-using MeanWordSetDistance as the container classes. See Redmine ticket #2349 for some experiment
-details.  The "best" value varies depending on the input data as well as how the data is being used.
+The default value was determined through experimentation with a Jakarta data set using
+MeanWordSetDistance as the container classes. See Redmine ticket #2349 for some experiment details.
+The "best" value varies depending on the input data as well as how the data is being used.
 
 === libpostal.data.dir
 
@@ -2267,6 +2331,31 @@ The maximum number of warn log messages that will be emitted per class before th
 A value of -1 passed to class will ensure that no warnings are logged by it, if it honors the
 option. A setting of -1 is useful for tests where you do not have granular enough logging control.
 
+=== log.warnings.for.completely.untyped.input.maps
+
+* Data Type: bool
+* Default Value: `true`
+
+If true, warnings are logged any time an input map is loaded for conflation that does not contain
+any feature with a  type recognizable by the Hootenanny schema. This is generally only turned off
+when running tests.
+
+=== log.warnings.for.empty.input.maps
+
+* Data Type: bool
+* Default Value: `true`
+
+If true, warnings are logged any time an empty map is loaded. This is generally only turned off
+when running tests.
+
+=== log.warnings.for.missing.elements
+
+* Data Type: bool
+* Default Value: `true`
+
+Determines whether references in parent elements to child elements which do not exist in the input
+trigger warning log messages.
+
 [[MapCleanerTransforms]]
 === map.cleaner.transforms
 
@@ -2302,7 +2391,23 @@ A list of map operations to be applied to a map for cleaning purposes, in order.
 
 If true, when comparing maps with the Compare command it will print out the details for all elements
 identified as different between the two maps when there is a size difference (up to a default
-limit). This is useful in debugging remote test errors. TODO: set this back to false
+limit). This is useful in debugging remote test errors.
+
+=== map.factory.reader
+
+* Data Type: string
+* Default Value: ``
+
+Specifies the reader that the OsmMapReaderFactory will use. This overrides any information derived
+from the URL.
+
+=== map.factory.writer
+
+* Data Type: string
+* Default Value: ``
+
+Specifies the writer that the OsmMapWriterFactory will use. This overrides any information derived
+from the URL.
 
 === map.merge.ignore.duplicate.ids
 
@@ -2314,6 +2419,33 @@ duplicate element IDs.  This allows for two neighboring cells to contain the sam
 that spans both cells and is included in both datasets to not be duplicated when read
 into Hootenanny.
 
+=== map.reader.add.child.refs.when.missing
+
+* Data Type: bool
+* Default Value: `false`
+
+By default, file based readers will not add child references (node ref, elements members) to parent
+elements if those elements are not present in the data.  For external sorting and translations
+where partial chunks of elements only may be present, or workflows where you are working with
+remote sourced data with missing element children, the default value may need to be changed. This
+option is not supported by all file based readers.
+
+=== map.writer.schema
+
+* Data Type: string
+* Default Value: ``
+
+Sets the value for a "schema" attribute when writing a map to OSM XML.  NOTE: this will only be
+written if the value is not empty.
+
+=== map.writer.skip.empty
+
+* Data Type: bool
+* Default Value: `false`
+
+If true, the OSM map writer will NOT write a file if the map is empty. The default is to write a
+file even if the map is empty.
+
 [[match.creators]]
 === match.creators
 
@@ -2344,36 +2476,6 @@ List of match creators to use during conflation. This can modify what features w
 
 Used in the calculation of the match parallel score, cos (delta) ^ match.parallel.exponent
 
-=== metadata.dataset.indicator.tag
-
-* Data Type: list
-* Default Value:
-** `source:metadata`
-** `dataset`
-
-Single tag/value pair indicating that an element is a dataset used as import source or export
-destination for metadata values.
-
-=== metadata.tags
-
-* Data Type: list
-* Default Value:
-** `attribution`
-** `test-attribution`
-** `source`
-** `test-source`
-
-List of tag/value pairs of metatdata tags with default values to be distributed (import) or
-collected (export).
-
-=== metadata.grid.cell.size
-
-* Data Type: double
-* Default Value: `0.25`
-
-Cell size of the dataset grid created when exporting metadata tags to dataset elements. If this
-value is set to 0 a single polygon using the bounds of the source data is being created instead.
-
 === max.elements.per.partial.map
 
 * Data Type: double
@@ -2399,20 +2501,20 @@ Size is specified in bytes unless followed by one of these suffixes.
 * MB = size * 1000 * 1000
 * GB = size * 1000 * 1000 * 1000
 
-For instance setting the value to 500KB is equivalent to 500000 bytes.
+For instance, setting the value to 500KB is equivalent to 500000 bytes.
 
 The Linux utility RLIMIT_AS is used for limiting virtual memory. This is analagous to RAM, but
 less RAM will be utilized than the value specified. Typically this is most useful when limiting
 RAM usage of applications in a shared server environment.
 
-=== max.tag.length
+=== maximal.subline.max.recursive.complexity
 
 * Data Type: int
-* Default Value: `255`
+* Default Value: `-1`
 
-The OSM API imposes a 255 character limit to tag values even though the database doesn't.  It is
-possible to update the OSM API to a different limit and allow Hootenanny to use a larger upper
-limit to tag key/value pairs.
+Maximum recursive calls allowed in MaximalSubline as it looks for line matches. Too low of a number
+may degrade Unifying algorithm line matching conflate performance. Too high of a number may result
+in runaway line matching processing times. -1 indicates no limit.
 
 === maximal.subline.spacing
 
@@ -2422,6 +2524,15 @@ limit to tag key/value pairs.
 Spacing in meters used by the MaximalSublineMatcher during point discretization performed between
 matching ways.  Larger values may increase runtime performance but decrease conflation quality.
 
+=== max.tag.length
+
+* Data Type: int
+* Default Value: `255`
+
+The OSM API imposes a 255 character limit to tag values even though the database doesn't.  It is
+possible to update the OSM API to a different limit and allow Hootenanny to use a larger upper
+limit to tag key/value pairs.
+
 === memory.usage.checker.enabled
 
 * Data Type: bool
@@ -2468,6 +2579,36 @@ List of merger creators to use during conflation. This can modify what features
 (e.g. buildings, roads, etc.).  The ordering must match that in match.creators.
 'hoot info --mergers' displays information about the available mergers.
 
+=== metadata.dataset.indicator.tag
+
+* Data Type: list
+* Default Value:
+** `source:metadata`
+** `dataset`
+
+Single tag/value pair indicating that an element is a dataset used as import source or export
+destination for metadata values.
+
+=== metadata.grid.cell.size
+
+* Data Type: double
+* Default Value: `0.25`
+
+Cell size of the dataset grid created when exporting metadata tags to dataset elements. If this
+value is set to 0 a single polygon using the bounds of the source data is being created instead.
+
+=== metadata.tags
+
+* Data Type: list
+* Default Value:
+** `attribution`
+** `test-attribution`
+** `source`
+** `test-source`
+
+List of tag/value pairs of metatdata tags with default values to be distributed (import) or
+collected (export).
+
 === name.contains.criterion.case.sensitive
 
 * Data Type: bool
@@ -3079,54 +3220,6 @@ as master for determining the sequencing of element ID's.
 
 Add a tag with the bounding box for each element
 
-=== osm.map.reader.xml.add.child.refs.when.missing
-
-* Data Type: bool
-* Default Value: `false`
-
-By default, OsmXmlReader will not add child references (node ref, elements members) to parent
-elements if those elements are not present in the data.  For external sorting and translations,
-where partial chunks of elements only may be present the setting is changed.
-
-=== osm.map.reader.factory.reader
-
-* Data Type: string
-* Default Value: ``
-
-Specifies the reader that the OsmMapReaderFactory will use. This overrides any information derived
-from the URL.
-
-=== osm.map.writer.factory.writer
-
-* Data Type: string
-* Default Value: ``
-
-Specifies the writer that the OsmMapWriterFactory will use. This overrides any information derived
-from the URL.
-
-=== osm.map.writer.format.xml
-
-* Data Type: bool
-* Default Value: `true`
-
-Turns on autoformatting (line breaks, indentation etc) for XML output.
-
-=== osm.map.writer.schema
-
-* Data Type: string
-* Default Value: ``
-
-Sets the value for a "schema" attribute when writing a map to OSM XML.  NOTE: this will only be
-written if the value is not empty.
-
-=== osm.map.writer.skip.empty.map
-
-* Data Type: bool
-* Default Value: `false`
-
-If true, the OSM map writer will NOT write a file if the map is empty.
-The default is to write a file even if the map is empty.
-
 === overpass.api.host
 
 * Data Type: string
@@ -3135,14 +3228,6 @@ The default is to write a file even if the map is empty.
 Overpass API URL host name. Used by the JSON readers to distinguish Overpass JSON web sources from
 GeoJSON web sources.
 
-=== perty.apply.rubber.sheet
-
-* Data Type: bool
-* Default Value: `true`
-
-If true, the data is rubbersheeted before conflation, moving perturbed data closer to reference
-data.
-
 === perty.csm.D
 
 * Data Type: double
@@ -3179,7 +3264,7 @@ A list of operations that should be applied after the geometries have been shift
 
 Distance parameter (in meters) that determines how far out to search when trying to match features
 during conflation of reference and perturbed datasets.  This is equivalent in nature to the
-'error:circular' tag used in Hootenanny conflation, however this setting is used instead for
+circular error tag used in Hootenanny conflation, however this setting is used instead for
 PERTY scoring only.
 
 === perty.systematic.error.x
@@ -3381,14 +3466,21 @@ If true, instances where multiple POIs were matched to a single polygon will res
 POIs being automatically merged into the polygon.  If false, then each matched POI will generate a
 review against the polygon instead.
 
-=== poi.polygon.max.size.per.cache
+=== poi.polygon.disable.intradataset.conflation.1
 
-* Data Type: int
-* Default Value: `100000`
+* Data Type: bool
+* Default Value: `false`
 
-The maximum number of elements to cache information for when using POI/Polygon Conflation. This
-maximum size is repeated across multiple internal element information caches. To disable caching,
-specify a value less than one.
+Enabling this option prevents all POIs and Polygons within the first input dataset from being
+matched. Enabling it causes poi.polygon.disable.same.source.conflation to be ignored.
+
+=== poi.polygon.disable.intradataset.conflation.2
+
+* Data Type: bool
+* Default Value: `false`
+
+Enabling this option prevents all POIs and Polygons within the second input dataset from being
+matched. Enabling it causes poi.polygon.disable.same.source.conflation to be ignored.
 
 === poi.polygon.disable.same.source.conflation
 
@@ -3453,6 +3545,15 @@ features will be classified as a review or miss, depending on the value of
 'poi.polygon.review.evidence.threshold'.  Generally, this setting should not be changed except
 when working with specific POI/Polygon conflation use cases that require it.
 
+=== poi.polygon.max.size.per.cache
+
+* Data Type: int
+* Default Value: `100000`
+
+The maximum number of elements to cache information for when using POI/Polygon Conflation. This
+maximum size is repeated across multiple internal element information caches. To disable caching,
+specify a value less than one.
+
 === poi.polygon.name.score.threshold
 
 * Data Type: double
@@ -3553,6 +3654,14 @@ controlled by the Hootenanny schema.
 
 The source tag key to be used in conjunction with poi.polygon.disable.same.source.conflation.
 
+=== poi.polygon.name.string.comparer
+
+* Data Type: string
+* Default Value: `hoot::KskipBigramDistance`
+
+String comparison algorithm to use for name comparison with POI/Polygon conflation. Must be an
+implementation of `StringDistance`.
+
 === poi.polygon.tag.merger
 
 * Data Type: string
@@ -3588,14 +3697,22 @@ schema.  This can have significant impact on the runtime performance of conflati
 and should only be enabled if the source data is known to have non-English type values.  The
 configuration option, 'language.translation.translator', controls which translator is used.
 
+=== poi.search.radii
+
+* Data Type: string
+* Default Value: `${HOOT_HOME}/conf/core/PoiSearchRadii.json`
+
+This specifies per feature search radius distances to use during POI to POI conflation. It may
+either by a path to a JSON file or a JSON string. See ${HOOT_HOME}/conf/core/PoiSearchRadii.json
+for details on the JSON format.
+
 === power.line.auto.calc.search.radius
 
 * Data Type: bool
 * Default Value: `true`
 
 Automatically calculates the search radius to be used during conflation of power lines using rubber
-sheet tie point distances.  When this setting is enabled, rubbersheeting is not allowed as a
-pre-conflation operation on the input data to be conflated.
+sheet tie point distances.
 
 === power.line.match.threshold
 
@@ -3766,13 +3883,11 @@ pseudo-random results in the output.
 
 * Data Type: list
 * Default Value:
-** `REF1`
-** `REF2`
-** `hoot:status`
-** `uuid`
+** ``
 
-A list of tag keys which are exempt from the tag removal done by RandomTagModifier.  This is
-useful for preventing the removal of tags Hootenanny relies on during conflation.
+A list of tag keys which are exempt from the tag removal done by RandomTagModifier. This is useful
+for preventing the removal of custom tags which are needed in the output. By default, all metadata
+and ref tags are exempted.
 
 === random.tag.modifier.probability
 
@@ -3787,7 +3902,7 @@ Set the probability that a tag will be removed.
 * Default Value:
 ** `highway`
 
-A list of tag keys which, rather than being removed by the PertyRemoveTagVisitor, will have their
+A list of tag keys which, rather than being removed by the RandomTagModifier, will have their
 values replaced instead.  The tag keys in the list match one to one with the replacement values in
 random.tag.modifier.subsitution.values.
 
@@ -3797,7 +3912,7 @@ random.tag.modifier.subsitution.values.
 * Default Value:
 ** `road`
 
-A list of tag values which, should be substituted by PertyRemoveTagVisitor.  The tag values in the
+A list of tag values which, should be substituted by RandomTagModifier.  The tag values in the
 list match one to one with the replacement values in random.tag.modifier.subsitution.keys.
 
 === random.way.generalizer.epsilon
@@ -4024,6 +4139,14 @@ If set to true, then debug symbols will be added to nodes and additional tags wi
 matched nodes. This is a destructive operation that is only useful when debugging and should not
 be used during serious conflation.
 
+=== rubber.sheet.element.criteria
+
+* Data Type: list
+* Default Value: ``
+
+Determines which type of features are rubbersheeted. An empty list will rubbersheet all types of
+features.
+
 === rubber.sheet.fail.when.minimum.tie.points.not.found
 
 * Data Type: bool
@@ -4035,10 +4158,10 @@ points are found.  Otherwise, a warning will be logged and rubber sheeting will
 === rubber.sheet.log.missing.requirements.as.warning
 
 * Data Type: bool
-* Default Value: `true`
+* Default Value: `false`
 
 If set to true, rubber sheeting will log a warning if any requirement for rubber sheeting is not
-met.  e.g less than rubber.sheet.minimum.ties tie points are found.  Otherwise, an info level log
+met. e.g less than rubber.sheet.minimum.ties tie points are found.  Otherwise, an info level log
 statement will be logged instead.  This setting is completely ignored if
 rubber.sheet.fail.when.minimum.tie.points.not.found is set to true.
 
@@ -4211,9 +4334,8 @@ The search radius, in meters, to use when conflating collection relations. See
 
 The default search radius, in meters, to use when conflating features. If two features are within
 the search radius then they will be considered for matching. If the value is set to the default
-value of -1.0, then the circular error will be used to calculate an appropriate search radius
-('error:circular' or 'accuracy' tag). Some feature matching routines may not strictly honor the
-default value.
+value of -1.0, then the circular error will be used to calculate an appropriate search radius. Some
+feature matching routines may not strictly honor the default value.
 
 === search.radius.generic.line
 
@@ -4520,8 +4642,8 @@ all translation stats are disabled.
 * Data Type: string
 * Default Value: `Invalid`
 
-The default status to match with a status criterion.  Used by various element visitors and map
-operations.
+The default status to match with a status criterion. Valid values are: 'Conflated', 'Invalid',
+'Unknown1', or 'Unknown2'. Used by various element visitors and map operations.
 
 === status.update.visitor.only.update.invalid.status
 
@@ -4536,8 +4658,8 @@ status is 'Invalid'.
 * Data Type: string
 * Default Value: ``
 
-Adds the specified status to elements.  Valid values are: 'Unknown1', 'Unknown2', 'Conflated', or
-'Invalid'.  If left empty, all elements will receive tag additions.
+Adds the specified status to elements.  Valid values are: 'Conflated', 'Invalid', 'Unknown1',
+'Unknown2'. If left empty, all elements will receive tag additions.
 
 === street.types.file
 
@@ -4630,9 +4752,9 @@ Hootenanny Javascript interface instead.
 * Default Value:
 ** ``
 
-A list of tag keys the KeepTagsVisitor/RemoveTagsVisitor will keep/remove on/from elements.  From
-the command line, separate list items with a semicolon and surround the entire list in double
-quotes.
+A list of tag keys the KeepTagsVisitor/RemoveTagsVisitor will keep/remove on/from elements.
+Wildcard matching is supported with '*'. From the command line, separate list items with a semicolon
+and surround the entire list in double quotes.
 
 === tag.key.contains.criterion.text
 
@@ -4658,6 +4780,18 @@ Specifies the default way of merging tags. This is used by most merge routines,
 depending on the specifics of the merger. 'hoot info --tag-mergers' displays information about the 
 available mergers.
 
+=== tag.merger.overwrite.accumulate.values.keys
+
+* Data Type: list
+* Default Value:
+** ``
+
+This allows the OverwriteTagMerger to preserve the values of select tags during tag merging. This
+does not apply to name tags or tags marked as type "text" or "metadata" in the schema. Any tag key
+in the option list found in the set of tags used to overwrite will result in corresponding tag
+values in the target feature being appended to each other. e.g. A: { a_id=1, b_id=1} merged with
+B: { b_id=2} results in C: { a_id=1, b_id=1;2 }
+
 === tag.merger.overwrite.exclude
 
 * Data Type: list
@@ -4891,24 +5025,7 @@ SampledAngleHistogramExtractor
 * Default Value: `true`
 
 Automatically calculates the search radius to be used during conflation of waterways using rubber
-sheet tie point distances.  When this setting is enabled, rubbersheeting is not allowed as a
-pre-conflation operation on the input data to be conflated.
-
-=== waterway.long.way.length.threshold
-
-* Data Type: int
-* Default Value: `150000`
-
-Way length threshold, in meters, at or above which River Conflation will switch from the configured
-subline matcher to Frechet subline matching to increase runtime performance.
-
-=== waterway.long.way.node.count.threshold
-
-* Data Type: int
-* Default Value: `750`
-
-Way node count threshold at or above which River Conflation will switch from the configured subline
-matcher to Frechet subline matching to increase runtime performance.
+sheet tie point distances.
 
 === waterway.matcher.heading.delta
 
@@ -4925,6 +5042,13 @@ The distance around a point on a waterway to look when calculating the heading.
 
 Sets that maximum angle that is still considered a waterway match. Units in degrees.
 
+=== waterway.maximal.subline.max.recursive.complexity
+
+* Data Type: int
+* Default Value: `50`
+
+River specific version of maximal.subline.max.recursive.complexity.
+
 === waterway.name.threshold
 
 * Data Type: double
@@ -5199,3 +5323,10 @@ If true, OSM elements written to XML file output (.osm) are sorted by ID.  Setti
 will require reading the entire source dataset into memory.  Setting it to false may result in
 using smaller amounts of memory during writing if the data source being written is also a streamable
 format (see the "Supported Data Formats" section in README.md).
+
+=== writer.xml.format
+
+* Data Type: bool
+* Default Value: `true`
+
+Turns on autoformatting (line breaks, indentation etc) for XML output.
Clone this wiki locally