Skip to content

v0.2.54..v0.2.55 changeset ConfigOptions.asciidoc

Garret Voltz edited this page Aug 14, 2020 · 1 revision
diff --git a/conf/core/ConfigOptions.asciidoc b/conf/core/ConfigOptions.asciidoc
index cd6de57..7eb99a3 100644
--- a/conf/core/ConfigOptions.asciidoc
+++ b/conf/core/ConfigOptions.asciidoc
@@ -172,14 +172,15 @@ your language translation needs.
 * Data Type: int
 * Default Value: `16`
 
-The number of data bins used by the AngleHistogramExtractor.
+The number of data bins used by the AngleHistogramExtractor and the SampledAngleHistogramExtractor.
 
 === angle.histogram.extractor.smoothing
 
 * Data Type: double
 * Default Value: `0.0`
 
-Smoothing value in radians used by the AngleHistogramExtractor.
+Smoothing value in radians used by the AngleHistogramExtractor and the
+SampledAngleHistogramExtractor.
 
 === api.db.email
 
@@ -363,7 +364,7 @@ MatchFactory::_tempFixDefaults() for more info.
 * Default Value: `tmp/bounds.osm`
 
 Output location for a bounds file when the `--write-bounds` option is selected for either the
-`changeset-derive`, `convert`, or `crop` commands.
+`changeset-derive`, `changeset-derive-replacement`, `convert`, or `crop` commands.
 
 === buffered.overlap.extractor.portion
 
@@ -599,6 +600,31 @@ in a single changeset.
 If disabled, replacement changesets generated by `changeset-derive-replacement` will never add
 delete statements for reference features falling outside of `convert.bounding.box`.
 
+=== changeset.replacement.deduplicate.calculated.maps
+
+* Data Type: bool
+* Default Value: `true`
+
+If enabled, changeset replacement derivation will perform an extra element de-duplication step
+before calculating the changeset.
+
+=== changeset.replacement.mark.elements.with.missing.children
+
+* Data Type: bool
+* Default Value: `true`
+
+If enabled, any way having references to nodes whose source elements do not exist or relation having
+references to members whose source elements do not exist will have a custom tag added to them to
+signal that the feature may need manual cleanup.
+
+=== changeset.replacement.pass.conflate.reviews
+
+* Data Type: bool
+* Default Value: `false`
+
+If enabled and conflation is also enabled during changeset replacement derivation, conflate review
+relations will be written.
+
 === changeset.source
 
 * Data Type: string
@@ -630,6 +656,22 @@ purposes.
 Set the circular error tag on features to this value, in meters, by default if the tag isn't already
 populated.
 
+=== collection.relation.name.threshold
+
+* Data Type: double
+* Default Value: `0.9`
+
+Name similarity threshold (0.0 to 1.0) at or above which an collection relation feature is
+considered to have a name match.
+
+=== collection.relation.tag.threshold
+
+* Data Type: double
+* Default Value: `0.8`
+
+Tag similarity threshold (0.0 to 1.0) at or above which an collection relation feature is considered
+to have similar tags.
+
 === config.options.file
 
 * Data Type: string
@@ -695,6 +737,7 @@ See also:
 
 * Data Type: list
 * Default Value:
+** `hoot::RemoveMissingElementsVisitor`
 ** `hoot::PoiPolygonInvalidReviewNodeRemover`
 ** `hoot::SuperfluousNodeRemover`
 ** `hoot::SmallHighwayMerger`
@@ -743,7 +786,7 @@ 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 `FilteredByCriteria`
+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.
 
@@ -881,6 +924,14 @@ Same as convert.bounding.box but the resultant bounds filtering is only applied
 data sources when used with the convert and conflate commands.  This setting takes precendence over
 the convert.bounding.box setting for OSM API database data sources only.
 
+=== convert.bounding.box.remove.missing.elements
+
+* Data Type: bool
+* Default Value: `true`
+
+If enabled, any call to the `convert` command with a bounds specified by `convert.bounding.box` will
+remove missing references to missing elements as a result of map cropping.
+
 === convert.bounding.box.tag.immediately.connected.out.of.bounds.ways
 
 * Data Type: bool
@@ -993,6 +1044,14 @@ The pixel size used when running either the `crop-random` command or `RandomMapC
 
 Debugging: The filename to use when saving the debug map during conflation.
 
+=== debug.maps.remove.missing.elements
+
+* Data Type: bool
+* Default Value: `true`
+
+If enabled, debug maps will have missing element references removed upon their writing. This allows
+the output to be viewed in JOSM.
+
 === debug.maps.write
 
 * Data Type: bool
@@ -1165,6 +1224,23 @@ all ElementCriterionConsumers. Since this configuration option is shared across
 ElementCriterionConsumers, there may be undesirable effects in invocations involving multiple
 ElementCriterionConsumers.
 
+=== element.hash.visitor.non.metadata.ignore.keys
+
+* Data Type: list
+* Default Value:
+** ``
+
+List of tag keys for the ElementHashVisitor to ignore during comparison when calculating element
+hashes.
+
+=== element.id.criterion.ids
+
+* Data Type: list
+* Default Value:
+** ``
+
+A list of element IDs to pass to ElementIdCriterion.
+
 === element.sorter.element.buffer.size
 
 * Data Type: long
@@ -2211,6 +2287,7 @@ option. A setting of -1 is useful for tests where you do not have granular enoug
 ** `hoot::RemoveEmptyAreasVisitor`
 ** `hoot::RemoveDuplicateRelationMembersVisitor`
 ** `hoot::RelationCircularRefRemover`
+** `hoot::RemoveInvalidMultilineStringMembersVisitor`
 ** `hoot::RemoveEmptyRelationsOp`
 ** `hoot::RemoveDuplicateAreasVisitor`
 ** `hoot::NoInformationElementRemover`
@@ -2243,17 +2320,18 @@ into Hootenanny.
 * Data Type: list
 * Default Value:
 ** `hoot::BuildingMatchCreator`
-** `hoot::ScriptMatchCreator,Poi.js`
 ** `hoot::HighwayMatchCreator`
-** `hoot::ScriptMatchCreator,River.js`
 ** `hoot::PoiPolygonMatchCreator`
 ** `hoot::ScriptMatchCreator,Area.js`
+** `hoot::ScriptMatchCreator,River.js`
+** `hoot::ScriptMatchCreator,Poi.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`
+** `hoot::ScriptMatchCreator,CollectionRelation.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.
@@ -2327,6 +2405,15 @@ The Linux utility RLIMIT_AS is used for limiting virtual memory. This is analago
 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
+
+* 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.
+
 === maximal.subline.spacing
 
 * Data Type: double
@@ -2335,15 +2422,36 @@ 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.
 
+=== memory.usage.checker.enabled
+
+* Data Type: bool
+* Default Value: `true`
+
+Determines whether memory usage checking is enabled.
+
+=== memory.usage.checker.interval
+
+* Data Type: int
+* Default Value: `100000`
+
+If memory usage checking is run in an element processing loop, use this to control how often a
+memory usage check is made.
+
+=== memory.usage.checker.threshold
+
+* Data Type: int
+* Default Value: `95`
+
+Percentage value (1 to 100) of used system memory above which memory usage checking logs a
+notification. The same threshold value is used separately for both used physical and virtual memory.
+
 [[merger.creators]]
 === merger.creators
 
 * Data Type: list
 * Default Value:
 ** `hoot::BuildingMergerCreator`
-** `hoot::ScriptMergerCreator`
 ** `hoot::HighwayMergerCreator`
-** `hoot::ScriptMergerCreator`
 ** `hoot::PoiPolygonMergerCreator`
 ** `hoot::ScriptMergerCreator`
 ** `hoot::ScriptMergerCreator`
@@ -2352,6 +2460,9 @@ matching ways.  Larger values may increase runtime performance but decrease conf
 ** `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.
@@ -2809,6 +2920,15 @@ If set, the ogr reader will use the value at the specified field to populate nod
 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.output.format
+
+* Data Type: string
+* Default Value: ``
+
+This is used to pass the output format (file extension: shp, gdb etc) to translation scripts to enable output format specific translations.
+E.g. Setting this to 'shp' would be telling the translation script to shorten attribute names to 10 characters and keep text
+attributes below the 255 character maximum length.
+
 === ogr.split.o2s
 
 * Data Type: bool
@@ -2966,7 +3086,7 @@ Add a tag with the bounding box for each element
 
 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 will be present the setting is changed.
+where partial chunks of elements only may be present the setting is changed.
 
 === osm.map.reader.factory.reader
 
@@ -3853,17 +3973,7 @@ E.g. "hoot::TagCriterion;hoot::ReviewRelationCriterion"
 * Data Type: bool
 * Default Value: `true`
 
-Should the element remover remove the elements recursively?
-
-=== tag.filter.keys
-
-* Data Type: list
-* 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.
+Should RemoveElementsVisitor remove elements recursively?
 
 === replace.tag.visitor.match.tag
 
@@ -4086,6 +4196,14 @@ Element criterion class which determines which input features are used for searc
 calculation.  An empty value specifies that all input features are to be used.  Conflation routines
 making use of automatic search radius calculation should set this value appropriately.
 
+=== search.radius.collection.relation
+
+* Data Type: double
+* Default Value: `${search.radius.default}`
+
+The search radius, in meters, to use when conflating collection relations. See
+`search.radius.default`.
+
 === search.radius.default
 
 * Data Type: double
@@ -4273,6 +4391,15 @@ Maximum distance used by the Unconnected Way Snapper, in meters, allowed between
 way endpoint node and a neighboring way node for the way endpoint node to be snapped directly to
 the existing way node instead of adding the way endpoint node as a new way node on the way.
 
+=== snap.unconnected.ways.mark.only
+
+* Data Type: bool
+* Default Value: `false`
+
+If true, no ways will be actually snapped and any way that would have been snapped otherwise with
+the current configuration will be marked depending upon the enablement of
++snap.unconnected.ways.mark.snapped.ways+ and +snap.unconnected.ways.review.snapped.ways+.
+
 === snap.unconnected.ways.mark.snapped.nodes
 
 * Data Type: bool
@@ -4289,6 +4416,14 @@ marked with a custom tag.  Useful for debugging purposes.
 If true, all ways snapped by the Unconnected Way Snapper to another way or way node will be
 marked with a custom tag.  Useful for debugging purposes.
 
+=== snap.unconnected.ways.review.snapped.ways
+
+* Data Type: bool
+* Default Value: `false`
+
+If true, any snapped way will be marked for review. Useful if you want the opportunity to manually
+correct any snaps made.
+
 === snap.unconnected.ways.snap.to.way.criterion
 
 * Data Type: string
@@ -4365,13 +4500,6 @@ the endpoint way node to the way.
 The format used to write the element payload portion of the Spark changeset file.  Valid options are
 'json' or 'xml'.
 
-=== split.name.visitor.max.length
-
-* Data Type: int
-* Default Value: `255`
-
-The maximum length, in characters, that the SplitNameVisitor will allow for a name tag.
-
 === stats.generic.data.file
 
 * Data Type: string
@@ -4422,11 +4550,19 @@ Flat file containing street types and their abbreviations.
 
 * Data Type: list
 * Default Value:
+** `highway=crossing`
+** `highway=traffic_signals`
 ** `highway=turning_circle`
+** `power=pole`
+** `power=tower`
+** `public_transport=stop_position`
+** `railway=level_crossing`
 
 List of node key/value pairs that should never be orphaned from ways. SuperfluousNodeRemover will
 remove these if they are not part of a way or relation. Generally, only add to this list node
-features that conflation is unable to handle. Keep the list alphabetized by key, then value.
+features that conflation is unable to merge correctly. Fixing their handling during conflation is
+preferred to adding them to this list. Keep the list alphabetized by key, then value (we may want to
+eventually move it to its own config file).
 
 === tag.ancestor.differencer.name
 
@@ -4488,6 +4624,16 @@ The plugin name of an element criterion used to select tags to keep/remove used
 KeepTagsVisitor/RemoveTagsVisitor.  To pass in complex nested criteria for tag filtering, use the
 Hootenanny Javascript interface instead.
 
+=== tag.filter.keys
+
+* Data Type: list
+* 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.
+
 === tag.key.contains.criterion.text
 
 * Data Type: string
@@ -4518,8 +4664,8 @@ available mergers.
 * Default Value:
 ** ``
 
-A list of tags not to be overwritten on target features during tag merging when using
-OverwriteTagMerger only. Please keep alphabetized.
+A list of tag keys not to be overwritten on target features during tag merging when using
+OverwriteTagMerger or ReplaceTagMerger. Please keep the list alphabetized.
 
 === tag.printing.format
 
@@ -4748,6 +4894,22 @@ 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.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.
+
 === waterway.matcher.heading.delta
 
 * Data Type: double
@@ -4763,6 +4925,14 @@ 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.name.threshold
+
+* Data Type: double
+* Default Value: `0.9`
+
+Name similarity threshold (0.0 to 1.0) at or above which a linear watereay feature is considered to
+have a name match.
+
 === waterway.rubber.sheet.minimum.ties
 
 * Data Type: int
@@ -4878,12 +5048,21 @@ databases are capped at 2000 nodes per way.
 
 The minimum size that a way should be split into for merging. Units in meters.
 
+=== way.node.copier.duplicate.node.tolerance
+
+* Data Type: double
+* Default Value: `0.05`
+
+Distance tolerance, in the range of 0.0 to 1.0, allowed for WayNodeCopier to consider two nodes
+duplicates and not copy them. The higher the value, the more likely two nearby nodes would be
+considered to be duplicates.
+
 === way.splitter.max.length
 
 * Data Type: double
 * Default Value: `5000`
 
-This configuration option is used by hoot::WaySplitterOp. If a way is longer than this length
+This configuration option is used by WaySplitterOp. If a way is longer than this length
 (in meters) then it will be split into smaller ways.
 
 === way.subline.matcher
Clone this wiki locally