Skip to content

v0.2.52..v0.2.53 changeset ConfigOptions.asciidoc

Garret Voltz edited this page Feb 12, 2020 · 1 revision
diff --git a/conf/core/ConfigOptions.asciidoc b/conf/core/ConfigOptions.asciidoc
index 5a054cc..19ffb76 100644
--- a/conf/core/ConfigOptions.asciidoc
+++ b/conf/core/ConfigOptions.asciidoc
@@ -107,7 +107,7 @@ the review will receive them as well.
 === add.uuid.visitor.key
 
 * Data Type: string
-* Default Value: ``
+* Default Value: `uuid`
 
 Tag key used by AddUuidVisitor for adding custom unique ID's to data.
 
@@ -129,6 +129,14 @@ separate list items with a semicolon and surround the entire list in double quot
 If true, conflation that uses address matching will allow house number subletter mismatches for the
 addresses with the same house number.  e.g. when enabled, 23a Elm Street matches 23 Elm Street
 
+=== address.scorer.enable.caching
+
+* Data Type: bool
+* Default Value: `true`
+
+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.tag.keys.file
 
 * Data Type: string
@@ -543,7 +551,8 @@ The text description that is written to the OSM API database with a changeset.
 * Data Type: string
 * Default Value: `#hootbot`
 
-Set of semicolon separated hashtags associated with a changeset, used for querying changesets and for conflation campaigns
+Set of semicolon separated hashtags associated with a changeset, used for querying changesets and
+for conflation campaigns
 
 === changeset.max.size
 
@@ -768,9 +777,10 @@ ID of the node that ContainsNodeCriterion should search for.
 * Default Value: ``
 
 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.
+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.
 
 Example Usage:
 
@@ -833,14 +843,23 @@ performing a bounded API database query but are immediately connected to a way t
 crosses the bounds are tagged with a custom tag. Must be used in conjunction with
 `convert.bounding.box.keep.immediately.connected.ways.outside.bounds`. Not supported by all readers.
 
+=== convert.require.area.for.polygon
+
+* Data Type: bool
+* Default Value: `true`
+
+If true, an element must be classifiable as an area geometry in the Hootenanny schema in order to
+be converted to a GEOS polygon.
+
 === convert.ops
 
 * Data Type: list
 * Default Value:
 ** ``
 
-Specifies one or more semi-colon delimited map operations or visitors to apply before writing converted data.  This is only applicable to 
-the convert command. 'hoot info --operators' displays information about the available operations.
+Specifies one or more semi-colon delimited map operations or visitors to apply before writing
+converted data.  This is only applicable to the convert command. 'hoot info --operators' displays
+information about the available operations.
 
 === cookie.cutter.alpha
 
@@ -1073,6 +1092,15 @@ See also: <<MapCleanerTransforms,map.cleaner.transforms>>
 If true, the Duplicate Name Remover will always preserve the original name tag.  Otherwise, it
 will treat name and alternate name tags equally.
 
+=== duplicate.node.remover.distance.threshold
+
+* Data Type: double
+* Default Value: `0.01`
+
+When merging nodes with DuplicateNodeRemover, determines what tolerance should be used for deciding
+if two nodes are identical. Larger values are more likely to merge nodes which are not true
+duplicates of each other. The units are in meters, and the value must be greater than zero.
+
 === duplicate.way.remover.strict.tag.matching
 
 * Data Type: bool
@@ -1143,17 +1171,6 @@ Absolute file path to dictionaries of English words. The first file found will b
 dictionary of English words and used by some algorithms. If the files are not found then the English
 words will be silently ignored.
 
-=== generic.line.match.threshold
-
-* Data Type: double
-* Default Value: `${conflate.match.threshold.default}`
-
-The threshold at which a match is called a match for generic lines.
-
-See also:
-
- * _Estimate Pairwise Relationships_, <<hootalgo>>
-
 === generic.line.matcher.max.angle
 
 * Data Type: double
@@ -1161,29 +1178,6 @@ See also:
 
 Sets that maximum angle that is still considered a generic line match. Units in degrees.
 
-=== generic.line.miss.threshold
-
-* Data Type: double
-* Default Value: `${conflate.miss.threshold.default}`
-
-The threshold at which a miss is called a miss for generic lines.
-
-See also:
-
- * _Estimate Pairwise Relationships_, <<hootalgo>>
-
-=== generic.line.review.threshold
-
-* Data Type: double
-* Default Value: `${conflate.review.threshold.default}`
-
-The threshold at which a review is called a review for generic lines. See
-`conflate.review.threshold.default`.
-
-See also:
-
- * _Estimate Pairwise Relationships_, <<hootalgo>>
-
 === generic.line.subline.matcher
 
 * Data Type: string
@@ -1191,39 +1185,37 @@ See also:
 
 The way subline matcher to use when determining matching sublines with generic line conflation.
 
-=== generic.polygon.match.threshold
+=== generic.line.tag.threshold
 
 * Data Type: double
-* Default Value: `${conflate.match.threshold.default}`
-
-The threshold at which a match is called a match for generic polygons.
-
-See also:
+* Default Value: `0.8`
 
- * _Estimate Pairwise Relationships_, <<hootalgo>>
+Tag similarity threshold (0.0 to 1.0) at or above which an linear element not conflatable by
+specific Hootenanny conflation routines is considered to have similar tags.
 
-=== generic.polygon.miss.threshold
+=== generic.point.tag.threshold
 
 * Data Type: double
-* Default Value: `${conflate.miss.threshold.default}`
-
-The threshold at which a miss is called a miss for generic polygons.
-
-See also:
+* Default Value: `0.8`
 
- * _Estimate Pairwise Relationships_, <<hootalgo>>
+Tag similarity threshold (0.0 to 1.0) at or above which an point element not conflatable by
+specific Hootenanny conflation routines is considered to have similar tags.
 
-=== generic.polygon.review.threshold
+=== generic.point.polygon.tag.threshold
 
 * Data Type: double
-* Default Value: `${conflate.review.threshold.default}`
+* Default Value: `0.8`
 
-The threshold at which a review is called a review for generic polygons. See
-`conflate.review.threshold.default`.
+Tag similarity threshold (0.0 to 1.0) at or above which a pair of point and polygon elements not
+conflatable by specific Hootenanny conflation routines is considered to have similar tags.
 
-See also:
+=== generic.polygon.tag.threshold
 
- * _Estimate Pairwise Relationships_, <<hootalgo>>
+* Data Type: double
+* Default Value: `0.8`
+
+Tag similarity threshold (0.0 to 1.0) at or above which an polygon element not conflatable by
+specific Hootenanny conflation routines is considered to have similar tags.
 
 === geometry.modifier.rules.file
 
@@ -1282,6 +1274,13 @@ hoot::GeometryModifierOp.
 The maximum number of parsed tag string values stored in an in-memory cache when reading
 GeoNames data.
 
+=== graph.comparator.max.threads
+
+* Data Type: int
+* Default Value: `10`
+
+The maximum number of graph comparator threads that can be launched by the Compare command.
+
 === hash.seed.zero
 
 * Data Type: bool
@@ -1350,7 +1349,8 @@ 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. See
+`conflate.review.threshold.default`.
 
 See also:
 
@@ -1383,8 +1383,8 @@ derivatives) at http://<OSM Domain>/user/<your username>/oauth_clients
 * Data Type: string
 * Default Value: ``
 
-OpenstreetMap OAuth Private Consumer Key found after registering Hootenanny with OpenstreetMap (or its
-derivatives) at http://<OSM Domain>/user/<your username>/oauth_clients
+OpenstreetMap OAuth Private Consumer Key found after registering Hootenanny with OpenstreetMap (or
+its derivatives) at http://<OSM Domain>/user/<your username>/oauth_clients
 
 === hoot.osm.auth.access.token
 
@@ -1549,7 +1549,8 @@ A list of additional tag keys to be considered as names when tagging implicitly
 
 If true, implicit taggers will attempt to add more specific tags to existing non-generic elements
 (dependent on the element type filter; e.g. for POIs, elements with a tag more specific than
-"poi=yes").  If false, implicit taggers will ignore all non-generic elements during implicit tagging.
+"poi=yes").  If false, implicit taggers will ignore all non-generic elements during implicit
+tagging.
 
 === implicit.tagger.allow.words.involved.in.multiple.rules
 
@@ -1714,6 +1715,31 @@ If true, InBoundsCriterion requires features exist completely within `in.bounds.
 in order for the criterion to be satisfied. If false, features that cross the bounds may also
 satisfy the criterion.
 
+=== jni.class.path
+
+* Data Type: list
+* Default Value:
+** `${HOOT_HOME}/hoot-josm/target/dependency-jars/josm.jar;${HOOT_HOME}/hoot-josm/target/hoot-josm.jar`
+
+A list of JAR files to place on the JAVA classpath when Hootenanny C++ code in the hoot-josm project
+interacts with Hootenany and JOSM Java code via JNI.
+
+=== jni.initial.memory
+
+* Data Type: string
+* Default Value: `2g`
+
+JVM -Xms setting to use with hoot-josm JNI to configure the initial amount of memory available to
+the JVM.
+
+=== jni.max.memory
+
+* Data Type: string
+* Default Value: `8g`
+
+JVM -Xmx setting to use with hoot-josm JNI to configure the maximum amount of memory available to
+the JVM.
+
 === job.id
 
 * Data Type: string
@@ -1723,6 +1749,58 @@ This option allows for passing in a job ID for the currently executing command.
 trying to track multiple commands across a single job. When the Hootenanny API database is used
 for job output storage, the ID will be stored in the job status table of the associated map.
 
+=== josm.map.cleaner.add.detail.tags
+
+* Data Type: bool
+* Default Value: `false`
+
+If true, cleaning/validation detail tags will be added to map outputs when cleaning maps with JOSM.
+
+=== josm.map.validator.java.implementation
+
+* Data Type: string
+* Default Value: `hoot/core/josm/JosmMapValidator`
+
+File path relative to Hootenanny root directory without file extension or prefixed namespace to
+Java class to use as the JOSM Java map validator/cleaner implementation.
+
+=== josm.max.elements.for.map.string
+
+* Data Type: int
+* Default Value: `2000000`
+
+The maximum size in elements for a map allowed to be passed as a string between Hootenanny and JOSM.
+The default value was determined experimentally and may need tweaking per environment.
+
+=== josm.validators.exclude
+
+* Data Type: list
+* Default Value:
+** ``
+
+A list of JOSM validator Java class names without namespace prefixes or file extensions
+(e.g. 'DuplicatedWayNodes') to explicitly exclude use of during validation or cleaning using JOSM.
+Overrides values set in josm.validators.include.
+
+=== josm.validators.include
+
+* Data Type: list
+* Default Value:
+** ``
+
+A list of JOSM validator Java class names without namespace prefixes or file extensions
+(e.g. 'DuplicatedWayNodes') to explicitly include use of during validation or cleaning using JOSM.
+Overridden by values set in josm.validators.exclude.
+
+=== josm.validators.requiring.user.certificate
+
+* Data Type: list
+* Default Value:
+** `ApiCapabilitiesTest`
+** `MapCSSTagChecker`
+
+A list of JOSM validators known to require a user certificate. These validators will be skipped.
+
 === json.format.hootenanny
 
 * Data Type: bool
@@ -1857,11 +1935,13 @@ side detectors via the API, confidence support information is included.
 ** `TikaLanguageDetector`
 ** `OpenNlpLanguageDetector`
 
-When using 'HootServicesTranslatorClient' as the to English language translator or HootServicesLanguageDetectorClient as a source 
-language detector, one or more hoot-services Java class names implementing LanguageDetector.  Language detectors are used in order of 
-entry. 'hoot info --languages --detectors' displays information about the available server side detectors. If no detectors are specified, then 
-language translation will attempt to use as many detectors as needed, in a pre-determined order, to get a positive detection. 
-Separate values with a ';' and surround in quotes when passing in from the command line.
+When using 'HootServicesTranslatorClient' as the to English language translator or
+HootServicesLanguageDetectorClient as a source language detector, one or more hoot-services Java
+class names implementing LanguageDetector.  Language detectors are used in order of entry.
+'hoot info --languages --detectors' displays information about the available server side detectors.
+If no detectors are specified, then language translation will attempt to use as many detectors as
+needed, in a pre-determined order, to get a positive detection. Separate values with a ';' and
+surround in quotes when passing in from the command line.
 
 === language.info.provider
 
@@ -1995,8 +2075,8 @@ Only applies if language.translation.translator is set to hoot::ToEnglishDiction
 * Data Type: bool
 * Default Value: `true`
 
-If true and language.translation.translator is set to hoot::ToEnglishDictionaryTranslator, will attempt to
-retrieve multiple translations when scoring string comparisons.  Otherwise, only a single
+If true and language.translation.translator is set to hoot::ToEnglishDictionaryTranslator, will
+attempt to retrieve multiple translations when scoring string comparisons.  Otherwise, only a single
 translation is retrieved.
 
 === language.translation.translator
@@ -2043,8 +2123,8 @@ names with their namespace. An empty string (default) disables the filtering.
 * Default Value: `3`
 
 The maximum number of warn log messages that will be emitted per class before they are silenced.
-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.
+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.
 
 [[MapCleanerTransforms]]
 === map.cleaner.transforms
@@ -2052,6 +2132,7 @@ A setting of -1 is useful for tests where you do not have granular enough loggin
 * Data Type: list
 * Default Value:
 ** `hoot::ReprojectToPlanarOp`
+** `hoot::DuplicateNodeRemover`
 ** `hoot::OneWayRoadStandardizer`
 ** `hoot::DuplicateWayRemover`
 ** `hoot::SuperfluousWayRemover`
@@ -2071,19 +2152,42 @@ A setting of -1 is useful for tests where you do not have granular enough loggin
 A list of map operations to be applied to a map for cleaning purposes, in order.
 'hoot info --operators' displays information about the available transforms.
 
+=== map.comparator.print.full.mismatch.elements.on.map.size.diff
+
+* Data Type: bool
+* Default Value: `false`
+
+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
+
+=== map.merge.ignore.duplicate.ids
+
+* Data Type: bool
+* Default Value: `false`
+
+Option to allow for multiple datasets to be merged into one dataset, while ignoring
+duplicate element IDs.  This allows for two neighboring cells to contain the same way
+that spans both cells and is included in both datasets to not be duplicated when read
+into Hootenanny.
+
 [[match.creators]]
 === match.creators
 
 * Data Type: list
 * Default Value:
 ** `hoot::BuildingMatchCreator`
-** `hoot::ScriptMatchCreator,PoiGeneric.js`
+** `hoot::ScriptMatchCreator,Poi.js`
 ** `hoot::HighwayMatchCreator`
-** `hoot::ScriptMatchCreator,LinearWaterway.js`
+** `hoot::ScriptMatchCreator,River.js`
 ** `hoot::PoiPolygonMatchCreator`
 ** `hoot::ScriptMatchCreator,Area.js`
 ** `hoot::ScriptMatchCreator,Railway.js`
 ** `hoot::ScriptMatchCreator,PowerLine.js`
+** `hoot::ScriptMatchCreator,Point.js`
+** `hoot::ScriptMatchCreator,Line.js`
+** `hoot::ScriptMatchCreator,Polygon.js`
+** `hoot::ScriptMatchCreator,PointPolygon.js`
 
 List of match creators to use during conflation. This can modify what features will be conflated
 (e.g. buildings, roads, etc.).  The ordering must match that in merger.creators.
@@ -2103,8 +2207,8 @@ Used in the calculation of the match parallel score, cos (delta) ^ match.paralle
 ** `source:metadata`
 ** `dataset`
 
-Single tag/value pair indicating that an element is a dataset used as import source or export destination
-for metadata values.
+Single tag/value pair indicating that an element is a dataset used as import source or export
+destination for metadata values.
 
 === metadata.tags
 
@@ -2165,15 +2269,6 @@ RAM usage of applications in a shared server environment.
 Spacing in meters used by the MaximalSublineMatcher during point discretization performed between
 matching ways.  Larger values may increase runtime performance but decrease conflation quality.
 
-=== merge.nearby.nodes.distance
-
-* Data Type: double
-* Default Value: `0.01`
-
-When merging nodes during convert, determines what tolerance should be used for deciding if two
-nodes are identical. Larger values are more likely to merge nodes which are not true duplicates of
-each other. The units are in meters, and the value must be greater than zero.
-
 [[merger.creators]]
 === merger.creators
 
@@ -2187,6 +2282,10 @@ each other. The units are in meters, and the value must be greater than zero.
 ** `hoot::ScriptMergerCreator`
 ** `hoot::ScriptMergerCreator`
 ** `hoot::ScriptMergerCreator`
+** `hoot::ScriptMergerCreator`
+** `hoot::ScriptMergerCreator`
+** `hoot::ScriptMergerCreator`
+** `hoot::ScriptMergerCreator`
 
 List of merger creators to use during conflation. This can modify what features will be conflated
 (e.g. buildings, roads, etc.).  The ordering must match that in match.creators.
@@ -2452,15 +2551,14 @@ strict.
 An element criterion to be used for filtering ways whose nodes are counted. The elements must be
 ways for their nodes to be counted, otherwise the criterion will be ignored.
 
-=== tags.visitor.keys
+=== non.conflatable.criterion.ignore.relation.members
 
-* Data Type: list
-* Default Value:
-** ``
+* Data Type: bool
+* Default Value: `false`
 
-List of tag keys for which the AverageNumericTagsVisitor, SumNumericTagsVisitor, or
-TagKeyCountVisitor uses.  Separate keys with a ';' and surround entire list in double quotes when
-passing in from the command line.
+If false, in order for a relation to be deemed not conflatable all of its members must also not be
+conflatable. If true, a relation can be deemed not conflatable even if any of its members are also
+conflatable.
 
 === ogr.add.uuid
 
@@ -2642,8 +2740,8 @@ If set, the ogr reader will use the value at the specified field to populate nod
 * Data Type: string
 * Default Value: `yes`
 
-GDAL Option: When reading OGDI datasources (VPF etc), setting this to 'yes' causes the layer names to be simplified.
-For example : watrcrsl_hydro instead of 'watrcrsl@hydro(*)_line'
+GDAL Option: When reading OGDI datasources (VPF etc), setting this to 'yes' causes the layer names
+to be simplified. For example : watrcrsl_hydro instead of 'watrcrsl@hydro(*)_line'
 
 === ogr.split.o2s
 
@@ -2856,7 +2954,8 @@ GeoJSON web sources.
 * Data Type: bool
 * Default Value: `true`
 
-If true, the data is rubbersheeted before conflation, moving perturbed data closer to reference data.
+If true, the data is rubbersheeted before conflation, moving perturbed data closer to reference
+data.
 
 === perty.csm.D
 
@@ -2922,8 +3021,8 @@ A score variance in the range of 0.0 to 1.0 by which a `perty-test` test run sco
 while still allowing the test run's status to be described as passing.  Test run score differences
 larger than this value will cause the test run's status to be described as failing.  If you are
 not sure what your expected scores should be and want to bypass this check, create a list with
-all entries equal to "1.0" of the same size as perty.test.num.runs, and then
-set perty.test.allowed.score.variance to "1.0".  This effectively disables the score validation.
+all entries equal to "1.0" of the same size as perty.test.num.runs, and then set
+perty.test.allowed.score.variance to "1.0".  This effectively disables the score validation.
 
 === perty.test.dynamic.variable.increment
 
@@ -3056,27 +3155,16 @@ current directory (CWD), $CWD/rules, $HOOT_HOME/rules.
 If true, POI to POI conflation will ignore the types of the features being compared completely as
 long as those being compared have a populated name field.
 
-=== poi.match.threshold
-
-* Data Type: double
-* Default Value: `${conflate.match.threshold.default}`
-
-The threshold at which a match is called a match for POIs.
-
-See also:
-
- * _Estimate Pairwise Relationships_, <<hootalgo>>
-
-=== poi.miss.threshold
+=== poi.polygon.additional.search.distance
 
 * Data Type: double
-* Default Value: `${conflate.miss.threshold.default}`
-
-The threshold at which a miss is called a miss for POIs.
-
-See also:
+* Default Value: `125.0`
 
- * _Estimate Pairwise Relationships_, <<hootalgo>>
+The maximum distance, in meters, added to the circular error of the features being compared, the
+total of which allows the features to be considered for match or review based on distance criteria
+only. If a value of zero is specified, then only the feature circular error will factor into the
+search distance. Higher values for this option can cause large increases in conflation runtime for
+dense datasets.
 
 === poi.polygon.address.match.enabled
 
@@ -3131,15 +3219,6 @@ set to true, then the tag matcher is less strict and will attempt to match the p
 tag value when delimited by a colon.  e.g. 'source=mgcp:buildp_clip;osm' will match
 'source=mgcp:builda_clip;osm' since both tag values begin with 'mgcp:'.
 
-=== poi.polygon.enable.advanced.matching
-
-* Data Type: bool
-* Default Value: `false`
-
-If true, POI to Polygon conflation will perform additional checks against surrounding features
-for match evidence.  This setting allows for detailed conflation customization but can be runtime
-expensive when enabled.
-
 === poi.polygon.enable.review.reduction
 
 * Data Type: bool
@@ -3154,10 +3233,11 @@ incorrect matches.  This setting may be runtime expensive when enabled for large
 * Default Value: `false`
 
 If this setting is true, POI to Polygon conflation will attempt to match the closest feature pairs
-only.  The conflation will not match additional features at greater distances, even if they are
-within the match distance threshold.  Multiple features matches are still possible in the case of
-exact distance ties.  If this setting is false, then multiple POIs found within the match distance
-threshold of a polygon are treated as reviews.
+only. This is useful, for example, when you know the POIs on top of buildings are the only correct
+match in your data. With this setting enabled, the conflation will not match additional features at
+greater distances, even if they are within the match distance threshold. Multiple features matches
+are still possible in the case of exact distance ties. If this setting is false, then multiple POIs
+found within the match distance threshold of a polygon are treated as reviews.
 
 === poi.polygon.match.distance.threshold
 
@@ -3238,15 +3318,6 @@ if running 'hoot score-matches' with POI to Polygon conflation.
 If true, POI to polygon conflation will classify all points with OSM address tags as POIs even if
 they do not have specific type tags.
 
-=== poi.polygon.review.distance.threshold
-
-* Data Type: double
-* Default Value: `125.0`
-
-The maximum distance, in meters, combined with the circular error of the features being compared,
-the total of which allows the features to still be considered a match based on distance criteria
-only.
-
 === poi.polygon.review.evidence.threshold
 
 * Data Type: int
@@ -3257,9 +3328,8 @@ does not meet the threshold defined by 'poi.polygon.match.evidence.threshold'.
 0 to 3.  If an evidence score for a feature pair falls below this value, the relationship between
 the features will be classified as a miss.  If the value is set to 0, all feature pairs which did
 not match will be reviewed.  If the value is set greater than or equal to
-'poi.polygon.match.evidence.threshold', an error will occur.  Generally, this setting
-should not be changed except when working with specific POI/Polygon conflation use cases that
-require it.
+'poi.polygon.match.evidence.threshold', an error will occur.  Generally, this setting should not be
+changed except when working with specific POI/Polygon conflation use cases that require it.
 
 === poi.polygon.review.if.matched.types
 
@@ -3323,17 +3393,6 @@ 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.review.threshold
-
-* Data Type: double
-* Default Value: `${conflate.review.threshold.default}`
-
-The threshold at which a review is called a review for POIs. See `conflate.review.threshold.default`.
-
-See also:
-
- * _Estimate Pairwise Relationships_, <<hootalgo>>
-
 === power.line.auto.calc.search.radius
 
 * Data Type: bool
@@ -3343,6 +3402,17 @@ Automatically calculates the search radius to be used during conflation of power
 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.
 
+=== power.line.match.threshold
+
+* Data Type: double
+* Default Value: `${conflate.match.threshold.default}`
+
+The threshold at which a match is called a match for power lines.
+
+See also:
+
+ * _Estimate Pairwise Relationships_, <<hootalgo>>
+
 === power.line.matcher.distance.weight.coefficient
 
 * Data Type: double
@@ -3352,13 +3422,6 @@ A weighting coefficient value from 0.0 to 1.0 for the applying distance weightin
 matches.  This will favor feature that are closer together.  The higher the coefficient value, the
 higher the weighting applied.  A value of 0.0 will disable distance weighting.
 
-=== power.line.subline.matcher
-
-* Data Type: string
-* Default Value: `hoot::FrechetSublineMatcher`
-
-The way subline matcher to use when determining matching power line sublines.
-
 === power.line.matcher.max.angle
 
 * Data Type: double
@@ -3366,6 +3429,35 @@ The way subline matcher to use when determining matching power line sublines.
 
 Sets that maximum angle that is still considered a power line match. Units in degrees.
 
+=== power.line.miss.threshold
+
+* Data Type: double
+* Default Value: `${conflate.miss.threshold.default}`
+
+The threshold at which a miss is called a miss for power lines.
+
+See also:
+
+ * _Estimate Pairwise Relationships_, <<hootalgo>>
+
+=== power.line.review.threshold
+
+* Data Type: double
+* Default Value: `${conflate.review.threshold.default}`
+
+The threshold at which a review is called a review for power lines.
+
+See also:
+
+ * _Estimate Pairwise Relationships_, <<hootalgo>>
+
+=== power.line.subline.matcher
+
+* Data Type: string
+* Default Value: `hoot::FrechetSublineMatcher`
+
+The way subline matcher to use when determining matching power line sublines.
+
 === quantile.aggregator.quantile
 
 * Data Type: double
@@ -3389,17 +3481,6 @@ Maximum length, in characters, allowed when logging a variable value during prog
 Distance, in meters, used for sampling railway data during angle histogram extraction with the
 SampledAngleHistogramExtractor
 
-=== railway.match.threshold
-
-* Data Type: double
-* Default Value: `${conflate.match.threshold.default}`
-
-The threshold at which a match is called a match for railwayss.
-
-See also:
-
- * _Estimate Pairwise Relationships_, <<hootalgo>>
-
 === railway.matcher.heading.delta
 
 * Data Type: double
@@ -3415,28 +3496,6 @@ The distance around a point on a railway to look when calculating the heading. S
 
 Sets that maximum angle that is still considered a railway match. Units in degrees.
 
-=== railway.miss.threshold
-
-* Data Type: double
-* Default Value: `${conflate.miss.threshold.default}`
-
-The threshold at which a miss is called a miss for railways.
-
-See also:
-
- * _Estimate Pairwise Relationships_, <<hootalgo>>
-
-=== railway.review.threshold
-
-* Data Type: double
-* Default Value: `${conflate.review.threshold.default}`
-
-The threshold at which a review is called a review for railways.
-
-See also:
-
- * _Estimate Pairwise Relationships_, <<hootalgo>>
-
 === railway.subline.matcher
 
 * Data Type: string
@@ -3597,16 +3656,16 @@ reject anything larger than 1 square degree.
 * Data Type: double
 * Default Value: `0.25`
 
-Maximum size of an HTTP request's bounding box in degrees before it is split up into smaller bounding
-boxes and run in parallel
+Maximum size of an HTTP request's bounding box in degrees before it is split up into smaller
+bounding boxes and run in parallel
 
 === reader.http.bbox.thread.count
 
 * Data Type: int
 * Default Value: `4`
 
-Number of threads in the thread pool to process HTTP requests that contain bounding boxes that are too
-large to query at once (see `reader.http.bbox.max.size`).
+Number of threads in the thread pool to process HTTP requests that contain bounding boxes that are
+too large to query at once (see `reader.http.bbox.max.size`).
 
 === reader.keep.status.tag
 
@@ -3678,7 +3737,7 @@ The criterion used by RelationWithMostMembersOp to filter relations.
 * Default Value:
 ** ``
 
-List of element attributes to remove with the RemoveAttributesVisitor.  Valid values are: changeset,
+List of element attributes to remove with the RemoveAttributesVisitor. Valid values are: changeset,
 timestamp, user, uid, or version.
 
 === remove.duplicate.areas.diff
@@ -3791,6 +3850,16 @@ met.  e.g less than rubber.sheet.minimum.ties tie points are found.  Otherwise,
 statement will be logged instead.  This setting is completely ignored if
 rubber.sheet.fail.when.minimum.tie.points.not.found is set to true.
 
+=== rubber.sheet.max.allowed.ways
+
+* Data Type: int
+* Default Value: `500000`
+
+A threshold above which rubber sheeting will not attempt to align a dataset. A value of -1 will
+impose no upper limit. This is in place for performance reasons, as rubbersheeting is a very
+expensive process and can be increased on a per usage basis. This option's default value may need
+some tweaking based on experiences with operational data.
+
 === rubber.sheet.max.interpolator.iterations
 
 * Data Type: int
@@ -3806,7 +3875,7 @@ in the selection of a suboptimal interpolator.
 * Data Type: int
 * Default Value: `4`
 
-Sets the minimum number of tie points that will be used when calculating a rubbersheeting solution.
+The minimum number of tie points required to calculate a rubbersheeting solution.
 
 === rubber.sheet.ref
 
@@ -3915,9 +3984,16 @@ debugging tests which may hang on a remote build server.
 === search.radius.area
 
 * Data Type: double
-* Default Value: `${search.radius.generic.polygon}`
+* Default Value: `${search.radius.default}`
+
+The search radius, in meters, to use when conflating areas. See `search.radius.default`
+
+=== search.radius.building
+
+* Data Type: double
+* Default Value: `${search.radius.default}`
 
-The search radius to use when conflating areas.  See `search.radius.default`
+The search radius, in meters, to use when conflating buildings. See `search.radius.default`.
 
 === search.radius.calculator.element.criterion
 
@@ -3933,46 +4009,81 @@ making use of automatic search radius calculation should set this value appropri
 * Data Type: double
 * Default Value: `-1.0`
 
-The default search radius to use when conflating features. If two features are within the search
-radius then they will be considered for conflation.  If the value is -1 then the circular error will
-be used to calculate an appropriate search radius.  Not all feature matching routines will honor
-the default value.
+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.
 
 === search.radius.generic.line
 
 * Data Type: double
 * Default Value: `${search.radius.default}`
 
-The search radius to use when conflating generic lines.  See `search.radius.default`.
+The search radius, in meters, to use when conflating generic lines. See `search.radius.default`.
+
+=== search.radius.generic.point
+
+* Data Type: double
+* Default Value: `${search.radius.default}`
+
+The search radius, in meters, to use when conflating generic points. See `search.radius.default`.
+
+=== search.radius.generic.point.polygon
+
+* Data Type: double
+* Default Value: `${search.radius.default}`
+
+The search radius, in meters, to use when conflating generic points with generic polygons. See
+`search.radius.default`.
 
 === search.radius.generic.polygon
 
 * Data Type: double
 * Default Value: `${search.radius.default}`
 
-The search radius to use when conflating generic polygons.  See `search.radius.default`.
+The search radius, in meters, to use when conflating generic polygons. See `search.radius.default`.
 
 === search.radius.highway
 
 * Data Type: double
 * Default Value: `${search.radius.default}`
 
-The search radius to use when conflating highways.  See `search.radius.default`.
+The search radius, in meters, to use when conflating highways. See `search.radius.default`.
+
+=== search.radius.poi
+
+* Data Type: double
+* Default Value: `${search.radius.default}`
+
+The search radius, in meters, to use when conflating POIs. If `search.radius.default` is used, POI
+conflation will calculate a custom search distance based on the input feature types. See
+`search.radius.default`.
+
+=== search.radius.power.line
+
+* Data Type: double
+* Default Value: `${search.radius.default}`
+
+The search radius to use when conflating power lines. This value is not used if
+`power.line.auto.calc.search.radius=true`, and in that case the search radius is auto-calculated for
+the entire input dataset.  See `search.radius.default`.
 
 === search.radius.railway
 
 * Data Type: double
 * Default Value: `${search.radius.default}`
 
-The search radius to use when conflating railways.  See `search.radius.default`.
+The search radius, in meters, to use when conflating railways. See `search.radius.default`.
 
 === search.radius.waterway
 
 * Data Type: double
 * Default Value: `${search.radius.default}`
 
-The search radius to use when conflating waterways.  Not used if
-waterway.auto.calc.search.radius = true.  See `search.radius.default`.
+The search radius to use when conflating waterways. This value is not used if
+`waterway.auto.calc.search.radius=true`, and in that case the search radius is auto-calculated for
+the entire input dataset.  See `search.radius.default`.
 
 === set.tag.value.visitor.append.to.existing.value
 
@@ -4372,6 +4483,16 @@ Minimum tag numeric value that will allow the TagValueNumericRangeCriterion to b
 
 Minimum tag numeric value that will allow the TagValueNumericRangeCriterion to be satisified.
 
+=== tags.visitor.keys
+
+* Data Type: list
+* Default Value:
+** ``
+
+List of tag keys for which the AverageNumericTagsVisitor, SumNumericTagsVisitor, or
+TagKeyCountVisitor uses.  Separate keys with a ';' and surround entire list in double quotes when
+passing in from the command line.
+
 === task.status.update.interval
 
 * Data Type: int
@@ -4471,11 +4592,9 @@ See also:
 * Data Type: string
 * Default Value: ``
 
-Path to the translation script when using the hoot::TranslatedTagDifferencer. The
-hoot::TranslatedTagDifferencer is most useful when deciding how difference between two sets of
-tags should be calculated.
-
-This differencer can be used with:
+Path to the translation script when using the tag differencer, `hoot::TranslatedTagDifferencer`.
+This tag differencer is most useful when deciding how difference between two sets of tags should be
+calculated. It can be used with:
 
 * `small.way.merger.diff`
 * `remove.duplicate.areas.diff`
@@ -4536,17 +4655,6 @@ Automatically calculates the search radius to be used during conflation of water
 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.match.threshold
-
-* Data Type: double
-* Default Value: `${conflate.match.threshold.default}`
-
-The threshold at which a match is called a match for waterways.
-
-See also:
-
- * _Estimate Pairwise Relationships_, <<hootalgo>>
-
 === waterway.matcher.heading.delta
 
 * Data Type: double
@@ -4562,28 +4670,6 @@ 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.miss.threshold
-
-* Data Type: double
-* Default Value: `${conflate.miss.threshold.default}`
-
-The threshold at which a miss is called a miss for waterways.
-
-See also:
-
- * _Estimate Pairwise Relationships_, <<hootalgo>>
-
-=== waterway.review.threshold
-
-* Data Type: double
-* Default Value: `${conflate.review.threshold.default}`
-
-The threshold at which a review is called a review for waterways.
-
-See also:
-
- * _Estimate Pairwise Relationships_, <<hootalgo>>
-
 === waterway.rubber.sheet.minimum.ties
 
 * Data Type: int
@@ -4807,6 +4893,14 @@ useful for debugging.
 When true, writers will include debug information (hoot:* tags; e.g. status). Not honored by all
 writers.
 
+=== writer.include.matched.by.tag
+
+* Data Type: bool
+* Default Value: `false`
+
+If true, the 'hoot:matchedBy' tag will be added to element output when
+writer.include.debug.tags=true.
+
 === writer.precision
 
 * Data Type: int
Clone this wiki locally