Skip to content
Street Address Interpolation for geocoding given address points and a street network
JavaScript Rust HTML
Branch: master
Clone or download
Latest commit d48681a Oct 23, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci Allow CI more time Oct 3, 2019
cloudformation fix prefix ref Aug 29, 2019
lib Remove match.js Oct 7, 2019
native Delete version key/value Oct 22, 2019
scripts shebang Aug 29, 2019
test Remove version prop from test Oct 23, 2019
web Fix another assembly change Nov 16, 2017
.eslintrc.json Use eslint to lint docs Aug 9, 2019
.gitignore Add polystream & pg Feb 14, 2019 Update CHANGELOG Oct 23, 2019 update contribution steps Aug 29, 2019 change language codes parameter name from tokens to languages May 15, 2019
index.js Fix Debug Server Jul 29, 2019
package.json v26.1.2 Oct 23, 2019
yarn.lock Update neon-cli & eslint Sep 24, 2019


Given a road network and a set of address points as line delimited geojson; output an interpolation network.

map Mode

Basic Usage

map mode is the core mode that PT2ITP exposes. It is responsible for taking the input street network and address points and generating the interpolation network.

Basic Usage:

./index.js map --in-network=<FILE.geojson> --in-address=<File.geojson> --output=<File.geojson> --languages=en --db <DB>

Full Options:

./index.js map --help

Input Data

Address Input

Input line-delimited geojson features of points. Each point should have a property called street containing the street name and number containing the street address.

Addresses can have any number of name synonyms of equal or differing priority.


Property Function
number String The Housenumber for a given pt including any unit information. ie: 10a
street String or Array The name of the street - preferably non-abbreviated. If it's an array, it must contain an object for each street name synonym with the properties display for the street name and priority for the numeric ranking.
source String The source name of the data so a single input file can have a combination of multiple sources
output Boolean A boolean allowing pts to be used to calculate the ITP segment but not output in the final cluster
{ "type": "Feature", "geometry": { "type": "Point", ... }, "properties": { "street": "Main Street", "number": 10 } }
{ "type": "Feature", "geometry": { "type": "Point", ... }, "properties": { "street": [ { display: "Main Street", priority: 0  } ], "number": 11 } }

Street Network Input

Input line-delimited geojson features of lines. Each line should have a property called street containing the street name.

Note: Networks can have any number of name synonyms but must have one name feature that has a priority level higher than the other synonyms.

{ "type": "Feature", "geometry": { "type": "LineString", ... }, "properties": { "street": "Main Street" } }
{ "type": "Feature", "geometry": { "type": "LineString", ... }, "properties": { "street": "Main Street" } }

conflate Mode

Basic Usage


Basic Usage:

./index.js conflate --in-address=<FILE.geojson> --in-persistent=<File.geojson> --output=<File.geojson> --tokens=en --db <DB>

Full Options:

./index.js conflate --help

Input Data

Persistent Address Input



Property Function
`` ``

Conflate Address Input


Output Format

convert Mode

Basic Usage

Converts the PT2ITP standard of line delimited geojson features into the more widely supported GeoJSON FeatureCollections. Note that since GeoJSON is a text based format this should not be used for huge numbers of features as most parsing software will run out of memory.

Basic Usage:

./index.js convert --input linedelimited.geojson --output featurecollection.geojson

Full Options:

./index.js convert --help

Version Numbers

PT2ITP follows the Semver spec for it's CLI interface.

This means that breaking changes to the CLI tools will result in a MAJOR release. New features will result in a MINOR release and bug fixes a PATCH.

Internal functions may change in breaking ways with a MINOR release so long as they don't change/break the CLI interface.


Parts of an Address

123 1/2 West 1st Street
┬── ┬── ┬─── ┬┬─ ┬
│   │   │    ││  └┤ Suffix, Street Type - The type of street, ie: highway, street, circle.
│   │   │    ││   │ rules for suffixes will differ per county/municipality
│   │   │    ││
│   │   │    │└┤ Ordinal Indicator - The group of characters, following a numeral denoting that it is an ordinal number
│   │   │    │
│   │   │    └┤ Ordinal - The numberic portional of a street name - must be followed by an ordinal indicator
│   │   │
│   │   └┤ Precardinal, predirectional - The compass direction preceeding the street name
│   │
│   └┤ Fractional Address
└┤ Primary Address Number

289-1 Main Street Northeast APT 4
┬────             ┬──────── ┬── ┬
│                 │         │   └┤ Secondary Address
│                 │         │
│                 │         └┤ Secondary Address Address Designator
│                 │          │ Common types include Apartment=APT, Building=BLDG
│                 │          │ Floor=FL, Suite=STE, Unit, ROOM=RM, Department=Dept
│                 │          │ the # sign can be used if the specific type is not covered
│                 │
│                 └┤ postcardinal, postdirectional
└┤ Hypenated Primary Address Number - The hyphen is significant and should not be omitted.
 │ Different hyphenated standards represent different things. wikipedia: Queens Addresses
You can’t perform that action at this time.