Skip to content
Hootenanny conflates multiple maps into a single seamless map.
Branch: master
Clone or download
brianhatchl Submodule hoot-ui-2x de6dcd1..108c0e0:
  > buildinfo
  > Fixes conflate datasets in root bug, cherry picks other commits from grail branch (#1431)
  > 1408. added dataset toggle + button to switch which layer is on top (#1414)
  > update buildinfo
Latest commit f34323e May 14, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci Update CircleCI images to latest release. Apr 11, 2019
.github/ISSUE_TEMPLATE boiler plate updates 11-30-18 (#2767) Dec 1, 2018
conf Add option for allowing POI/Poly cross conflation (#3186) May 10, 2019
distribution Fix make eclipse Jul 29, 2016
docker Update from Qt 4 to Qt 5 (#3035) Mar 15, 2019
docs Reformat tag-distribution command output (#3189) May 10, 2019
hoot-cmd Standardize code using `std::shared_ptr` from C++11 (#3175) May 8, 2019
hoot-core-test Add option for allowing POI/Poly cross conflation (#3186) May 10, 2019
hoot-core Reformat tag-distribution command output (#3189) May 10, 2019
hoot-hadoop Rounded corners 2914 (#3012) Mar 21, 2019
hoot-js Standardize code using `std::shared_ptr` from C++11 (#3175) May 8, 2019
hoot-rnd Generalize building clusters into built-up areas (#3177) May 9, 2019
hoot-services hoot ui tomcat endpoint migration (#3151) May 6, 2019
hoot-swig Rounded corners 2914 (#3012) Mar 21, 2019
hoot-test Standardize code using `std::shared_ptr` from C++11 (#3175) May 8, 2019
hoot-ui @ 79ece94 Submodule hoot-ui be9b081..79ece94: Apr 23, 2019
hoot-ui-2x @ 108c0e0 Submodule hoot-ui-2x de6dcd1..108c0e0: May 14, 2019
m4 Remove log4cxx from build (#3174) May 7, 2019
node-export-server node-export-server: remove extra comma, reorder datasources so API is… Mar 1, 2019
patches Add patch for GEOS v3.4.2 Jan 18, 2016
plugins Fix for geojson files specifying more than x and y coordinate values (#… Apr 30, 2019
pretty-pipes Rename/reorg core commands / hadoop cleanup / CSR/HGIS prototype remo… Mar 27, 2018
rules Prevent auto search radius calc from using unrelated feature types (#… Mar 13, 2019
scripts Fix Shell Logic (#3183) May 9, 2019
stub Renamed Makefile.old to Makefile.hoot and updated all occurances of t… Sep 26, 2018
tbs Standardize code using `std::shared_ptr` from C++11 (#3175) May 8, 2019
test-files Reformat tag-distribution command output (#3189) May 10, 2019
tgs Add option for allowing POI/Poly cross conflation (#3186) May 10, 2019
translations Tweak the UFD translator (#3091) Apr 8, 2019
.gitattributes Actually adding the files this time. Jun 26, 2015
.gitignore advanced options table look up implementation (#3055) Mar 27, 2019
.gitmodules Build and deploy hoot-ui2x (#2628) Sep 20, 2018
AUTHORS Root dir file cleanup - 2/21/19 (#2981) Feb 22, 2019
CODE_OF_CONDUCT.md boiler plate updates 11-30-18 (#2767) Dec 1, 2018
COPYING Root dir file cleanup - 2/21/19 (#2981) Feb 22, 2019
ChangeLog Root dir file cleanup - 2/21/19 (#2981) Feb 22, 2019
Configure.pri.in Remove log4cxx from build (#3174) May 7, 2019
DockerBuild.sh Modifications to allow for dockerized vagrant. Sep 20, 2017
Gemfile Use strict gem versioning with bundler (#2180) Mar 19, 2018
Gemfile.lock Update ruby gems and chrome driver versions (#3153) Apr 30, 2019
HOOT_VERSION_GEN New address/phone tag utility features / namespace refactoring (#2754) Nov 29, 2018
Hootenanny.pro Rename/reorg core commands / hadoop cleanup / CSR/HGIS prototype remo… Mar 27, 2018
Hootenanny_Joint_Intellij_Eclipse_Java_Formatter.xml 1) Refromatted the entire Hoot Services' Java code base in one shot. May 12, 2016
INSTALL
LICENSE Initial commit Jun 13, 2015
LocalConfig.pri.orig could have sworn the defaults were already like this... (#3064) Mar 18, 2019
Makefile.am Revert "Removing 2x from build until fixed. (#3110)" (#3113) Apr 9, 2019
Makefile.hoot Fix build race condition (#3179) May 9, 2019
Makefile.inc.in add code coverage report for --with-rnd (#1033) Sep 8, 2016
NEWS
README Root dir file cleanup - 2/21/19 (#2981) Feb 22, 2019
README.md Add option to keep ref to Diff Conflate (#3159) May 1, 2019
SetupEnv.sh Clean OSS history -- initial commit Jun 17, 2015
VagrantBuild.sh Revert "Removing 2x from build until fixed. (#3110)" (#3113) Apr 9, 2019
VagrantProvisionCentOS7.sh Move Postgresql configuration and DB creation into scripts (#3108) Apr 15, 2019
VagrantProvisionVars.sh Update ruby gems and chrome driver versions (#3153) Apr 30, 2019
Vagrantfile Use of AddExportTagsVisitor in OsmXmlWriter (#3101) Apr 10, 2019
config.guess Clean OSS history -- initial commit Jun 17, 2015
config.sub Clean OSS history -- initial commit Jun 17, 2015
configure.ac Remove log4cxx from build (#3174) May 7, 2019
depcomp Clean OSS history -- initial commit Jun 17, 2015
hoot-main Clean OSS history -- initial commit Jun 17, 2015
install-sh Clean OSS history -- initial commit Jun 17, 2015
ltmain.sh Clean OSS history -- initial commit Jun 17, 2015
pom.xml Fix make eclipse Jul 29, 2016
sonar-project.properties Removed the 'rule of five' check from SonarQube as we are not using i… Mar 26, 2019
valgrind.supp Clean OSS history -- initial commit Jun 17, 2015

README.md

hoot_logo

Overview

Hootenanny:

  1. A gathering at which folksingers entertain often with the audience joining in

Conflation:

  1. Fancy word for merge

Hootenanny is an open source conflation tool developed with machine learning techniques to facilitate automated and semi-automated conflation of critical Foundation GEOINT features in the topographic domain. In short, it merges multiple maps into a single seamless map.

Hootenanny conflation occurs at the dataset level, where the user’s workflow determines the best reference dataset, source content, geometry, and attributes to transfer to the output map. Hootenanny's internal processing leverages the key value pair structure of OpenStreetMap (OSM) for improved utility and applicability to broader user groups. Normalized attributes can be used to aid in feature matching, and OSM’s free tagging system allows the map to include an unlimited number of attributes describing each feature.

Hootenanny is developed under the open source General Public License (GPL) and maintained on the National Geospatial-Intelligence Agency’s (NGA) GitHub site.

Goals

  • Automatically combine geospatial features for decision making
  • Allow for reviewing and manually resolving features which cannot be automatically matched with sufficient certainty
  • Maintain geometry and attribute provenance for combined features
  • Create up-to-date routable transportation networks from multiple sources

Types of Conflation

  • Attribute Conflation - Conflate map A with B where only tags are transferred from B to A and few or no changes are made to A's geometry.
  • Differential Conflation - Conflate map A with B where the only data added to the output from B is in areas that don't overlap with A. Optionally, you can configure to overwrite tags in A from B even when there is overlap or to output the unmodified map A data as well.
  • Horizontal Conflation (aka Cookie Cutter Conflation) - Define a specific region in map A that should not be modified and stitch in data from map B around it.
  • Reference Conflation (default) - Conflate the best geometry and tag parts of map B into map A, favoring map A's data.

There are a wide range of configuration options available to customize the conflation workflows.

Conflatable Feature Types

  • Area polygons
  • Building polygons
  • Points of Interest (POIs)
  • Transportation polylines (roads and railways)
  • Utility polylines (power lines)
  • Waterway polylines

Additional feature types can be made conflatable via custom script by using Hootenanny's Generic Conflation capability.

Conflation Algorithms

Tag Schemas

Hootenanny leverages the OSM key value pair tag concept to support translation between various data schemas and supports automated schema conversion between:

  • Topographic Data Store (TDS) v6.1/v4.0
  • Multi-National Geospatial Co-Production Program (MGCP)
  • Geonames
  • OSM
  • others

Users are also able to define their own custom translations.

Additional Feature Summary

In addition to conflating maps together, Hootenanny can also:

Supported Data Formats

Web User Interface

Hootenanny's web user interface is built upon the open source Mapbox iD Editor, which provides an intuitive and user-friendly conflation experience.

Web Services API

Access to Hootenanny core capabilities are exposed through a web services API for those wishing to develop their own conflation clients.

The web services use OAuth authentication.

Command Line Interface

Command line access is available and exposes additional functionalities not available from the web user interface.

Examples

Programming Language Bindings

Hootenanny has nodejs bindings available which expose core conflation capabilities for creating custom workflows.

Documentation

Installation

Support

  • FAQ
  • If you have any support questions, please create an issue in this repository.

Contributing

Redistribution

Hootenanny was developed at the National Geospatial-Intelligence Agency (NGA) in collaboration with DigitalGlobe. The government has "unlimited rights" and is releasing this software to increase the impact of government instruments by providing developers with the opportunity to take things in new directions. The software use, modification, and distribution rights are stipulated within the GNU General Public License. The GPL license is available in LICENSE.txt

All pull requests contributions to this project will be released under the GNU General Public License 3.0. Software source code previously released under an open source license and then modified by NGA staff is considered a "joint work" (see 17 USC 101); it is partially copyrighted, partially public domain, and as a whole is protected by the copyrights of the non-government authors and must be released according to the terms of the original open source license.

Licensed under the GNU General Public License v3.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.gnu.org/copyleft/gpl.html.

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Imagery provided by permission from DigitalGlobe. Users are responsible for complying with terms of use for data and imagery they use in conjunction with Hootenanny. Specifically, the must properly protect and comply with all legal, copyright, and licensing terms.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

You can’t perform that action at this time.