Map conflation software
mattjdnv UFD Translator (#2616)
* Cleaned up and added the UFD translator

refs: #2575

* Typo

refs: #2575

* Typo

refs: #2575
Latest commit 4926338 Sep 11, 2018
Permalink
Failed to load latest commit information.
.circleci Upgrade to use the latest Hootenanny containers. Jun 14, 2018
conf UFD Translator (#2616) Sep 11, 2018
distribution Fix make eclipse Jul 29, 2016
docker GBDX XML & JSON export (#2385) May 18, 2018
docs To English Tag Translation (#2583) Sep 7, 2018
hoot-cmd hoot-rnd refactoring (#2355) May 8, 2018
hoot-core-test Update ElementCacheLRU class (#2600) Sep 7, 2018
hoot-core Update tag-diff merge algorithm to keep the "old name" as alt_name. (#… Sep 7, 2018
hoot-hadoop Rename/reorg core commands / hadoop cleanup / CSR/HGIS prototype remo… Mar 27, 2018
hoot-js Adding comments about possible memory leak that is a false positive. Aug 14, 2018
hoot-rnd To English Tag Translation (#2583) Sep 7, 2018
hoot-services 2565 redo: add /jobs resource (#2614) Sep 11, 2018
hoot-swig hoot-rnd refactoring (#2355) May 8, 2018
hoot-test Fix SonarCube findings for Hootenanny (#2512) Aug 3, 2018
hoot-ui @ 3b6449d Submodule hoot-ui 520bad9..3b6449d: Aug 30, 2018
m4 hoot-rnd refactoring (#2355) May 8, 2018
node-export-server update node-export-server for --trans (#2489) Jul 10, 2018
node-mapnik-server Command refactoring and more (#2397) May 30, 2018
patches Add patch for GEOS v3.4.2 Jan 18, 2016
plugins UFD Translator (#2616) Sep 11, 2018
pretty-pipes Rename/reorg core commands / hadoop cleanup / CSR/HGIS prototype remo… Mar 27, 2018
reports Rename/reorg core commands / hadoop cleanup / CSR/HGIS prototype remo… Mar 27, 2018
rules 2457 - Command Line API / Namespace Refactoring (#2540) Jul 31, 2018
scripts Add sonar issue exclusions to command files (#2560) Aug 7, 2018
stub Clean OSS history -- initial commit Jun 17, 2015
tbs hoot-rnd refactoring (#2355) May 8, 2018
test-files UI Test layers should match '%Cucumber%' (#2613) Sep 11, 2018
tgs Reset Environment for all unit tests in CppUnit framework (#2479) Jun 28, 2018
translations UFD Translator (#2616) Sep 11, 2018
.gitattributes Actually adding the files this time. Jun 26, 2015
.gitignore Merge remote-tracking branch 'origin/develop' into 1666 Sep 5, 2017
.gitmodules Remove branch specifier from submodule. Not providing much utility (#… Jun 28, 2018
AUTHORS Clean OSS history -- initial commit Jun 17, 2015
COPYING Clean OSS history -- initial commit Jun 17, 2015
ChangeLog bring over change log changes from master Feb 5, 2016
ChangeLog.md Fix from merge error Jun 1, 2016
Configure.pri.in Added c++11 to the standard compile config (#2306) Apr 13, 2018
DockerBuild.sh Modifications to allow for dockerized vagrant. Sep 20, 2017
DockerBuild_HootCore.txt Build a Docker image for GBDX (#2122) Feb 6, 2018
GPLv3 Clean OSS history -- initial commit Jun 17, 2015
Gemfile Use strict gem versioning with bundler (#2180) Mar 19, 2018
Gemfile.lock Ruby gem version updates (#2428) May 31, 2018
HOOT_VERSION_GEN Change dashes in version to underscores Jan 21, 2016
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 Clean OSS history -- initial commit Jun 17, 2015
LICENSE Initial commit Jun 13, 2015
LicenseTemplate.txt Copyright updated 823 files and removed a space char from line 8 of t… Feb 23, 2017
LocalConfig.pri.orig Poi poly multiuse bug 2-23-18 (#2184) Feb 23, 2018
Makefile.am Command refactoring and more (#2397) May 30, 2018
Makefile.inc.in add code coverage report for --with-rnd (#1033) Sep 8, 2016
Makefile.old To English Tag Translation (#2583) Sep 7, 2018
NEWS Clean OSS history -- initial commit Jun 17, 2015
README Clean OSS history -- initial commit Jun 17, 2015
README.md To English Tag Translation (#2583) Sep 7, 2018
RebuildServices Clean OSS history -- initial commit Jun 17, 2015
SetupEnv.sh Clean OSS history -- initial commit Jun 17, 2015
VAGRANT.md Poi poly multiuse bug 2-23-18 (#2184) Feb 23, 2018
VagrantBuild.sh add make eclipse step to provisioning (#2222) Mar 5, 2018
VagrantProvisionCentOS7.sh Add lcov to provisioning for coverage reports (#2447) Jun 12, 2018
VagrantProvisionUbuntu1604.sh.old Use strict gem versioning with bundler (#2180) Mar 19, 2018
VagrantProvisionVars.sh Upgrade to ChromeDriver 2.41. (#2578) Aug 22, 2018
Vagrantfile Use the `tomcat` instead of `tomcat8` user with `sudo`. May 22, 2018
Vagrantfile.old GLPK and Dependencies Update; Ubuntu removal (#2138) Feb 23, 2018
config.guess Clean OSS history -- initial commit Jun 17, 2015
config.sub Clean OSS history -- initial commit Jun 17, 2015
configure.ac Rename/reorg core commands / hadoop cleanup / CSR/HGIS prototype remo… Mar 27, 2018
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
patches.txt Clean OSS history -- initial commit Jun 17, 2015
pom.xml Fix make eclipse Jul 29, 2016
valgrind.supp Clean OSS history -- initial commit Jun 17, 2015

README.md

hoot_logo

Introduction

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 to facilitate automated and semi-automated conflation of critical Foundation GEOINT features in the topographic domain. In short, it merges multiple maps of geodata 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.

Project 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

Installation

Hootenanny is supported on Red Hat/CentOS:

Instructions to launch a Hootenanny CentOS virtual machine

Instructions for an RPM based installation to CentOS 7.x.

Documentation

User and technical documentation may be found locally after installation in 'hoot/docs' or included with each release.

FAQ

If you have any support questions please create an issue in the Hootenanny GitHub repository.

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.

Command Line User Interface

A command line user interface for conflation capabilities is available for users who wish to visualize data outside of the web user interface (e.g. JOSM). It exposes some additional functionality that is not exposed from the web user interface. For a list of available Hootenanny commands, type 'hoot'. More detail is provided here.

Supported Geodata Types

Hootenanny can conflate:

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

Supported Data Formats

Hootenanny can import from:

  • ESRI File Geodatabase (.gdb)
  • GeoJSON (.geojson) (M)
  • geonames.org (.geonames)
  • Hootenanny API Database (hootapidb://)
  • JSON file (.json; similar to Overpass JSON) (M)
  • OpenStreetMap XML (.osm)
  • OpenStreetMap Protocol Buffers (.osm.pbf)
  • OpenStreetMap API Database (osmapidb://)
  • Shapefile (.shp)
  • Zip files containing shapefiles and/or ESRI File Geodatabase files (.zip)
  • Additional OGR supported formats

Hootenanny can export to:

  • ESRI File Geodatabase (.gdb)
  • GeoJSON (.geojson) (M)
  • Hootenanny API Database (hootapidb://)
  • JSON file (.json; similar to Overpass JSON) (M)
  • OpenStreetMap XML file (.osm) (*)
  • OpenStreetMap Protocol Buffers file (.osm.pbf)
  • OpenStreetMap API Database (osmapidb://)
  • Shapefile (.shp) (M)
  • Additional OGR supported formats

Hootenanny can export changesets to:

  • OpenStreetMap API Web Service
  • OpenStreetMap XML changeset file (.osc) (M)
  • OpenStreetMap SQL changeset file (.osc.sql) (M)

Notes:

  • (M) = format requires reading entire dataset into memory during processing
  • (*) = format requires reading entire dataset into memory during processing only if element ID output is sorted
  • All data read with a specified bounding box filter requires reading the entire dataset into memory during processing.

Tag Schemas

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

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

Users are also able to define their own custom translations. For custom translations, a specific mapping can be defined based on an uploaded dataset using a semi-automated Translation Assistant. More details on the translation capabilities of Hootenanny can be found in Hootenanny User Guide, as well as the Hootenanny User Interface Guide.

Data Cleaning

Hootenanny supports a variety of geometric and tag based data cleaning operations. Hootenanny can also add missing tags to POI data implicitly based on a feature's name. See the documentation for more details.

Language Translation

Hootenanny supports translating tags to the English language. See the User Guide for more information.

Contributing

Please read the Hootenanny Developer's Guide for details on setting up an environment, coding standards, and development process. Hootenanny developers use a customization of the Gitflow workflow.

Workflow Summary

  • Open a repository issue for the new feature to be worked on.
  • Perform work for the feature on a new git feature branch named as the number of the issue opened.
  • Open a pull request and assign at least one reviewer to merge the feature branch into the "develop" branch mainline when the feature is complete.

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.