# pt2itp **Repository Path**: mirrors_mapbox/pt2itp ## Basic Information - **Project Name**: pt2itp - **Description**: No description available - **Primary Language**: Unknown - **License**: BSD-2-Clause - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-08-09 - **Last Updated**: 2026-01-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

PT2ITP

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= --in-address= --output= --languages=en --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. #### Properties | 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 | | `interpolate` | `Boolean` A boolean, when set to false, keeps the address as an orphan address by skipping its inclusion in the ITP process | ##### Example ``` { "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. ##### Example ``` { "type": "Feature", "geometry": { "type": "LineString", ... }, "properties": { "street": "Main Street" } } { "type": "Feature", "geometry": { "type": "LineString", ... }, "properties": { "street": "Main Street" } } ... ``` ## `conflate` Mode ### Basic Usage CONFLATE MODE Basic Usage: ``` ./index.js conflate --in-address= --in-persistent= --output= --tokens=en --db ``` Full Options: ``` ./index.js conflate --help ``` ### Input Data #### Persistent Address Input CONFLATE MODE PERSISTENT ADDRESS #### Properties | Property | Function | | :------: | -------- | | `` | `` ##### Example ``` ``` #### Conflate Address Input ##### Example ``` ... ``` ### 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 ``` ## `analyze` Mode ### Basic Usage Analyzes the name field of a set of address and network data from either the database or a GeoJSON file. Outputs a CSV and markdown summary of the frequency distribution of each token in the data. Also includes a comparison mode for comparing address and network tokens. Basic Usage: ``` ./index.js analyze --cc us_ia --type address --output=/tmp/us_ia.text-analysis/address ``` ## `consensus` Mode ### Basic Usage Takes in multiple sets of address points, links addresses together using a set of query points, and calculates agreement metrics for each set of linked addresses. Basic Usage: ``` ./index.js consensus linedelimited1.geojson linedelimited2.geojson linedelimited3.geojson --query_points linedelimited.geojson --db consensus --languages en --country us ``` Full Options: ``` ./index.js consensus --help ``` ## Version Numbers PT2ITP follows the [Semver](http://semver.org/) 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. ## Terminology ### 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 ``` ## Tests To run the entire JS & Rust test suite: ``` npm run test ``` To run only the Cargo test suite: ``` npm run cargo ``` To run a specific Cargo test: ``` npm run cargo_individual --my_test= ``` - This will run only the test you specify (ie. `npm run cargo_one --my_test=util::linker::tests::test_be_linker`), as well as print any print statements you have added throughout your code.