Contents
Reference

Command reference

Every command of the free program and of gridpin-pro, with its arguments and flags, as the programs print them with --help (gridpin 0.9.0). Examples are in the documentation; this page is the complete list.

Commands by task

Geocode: query, reverse, batch, serve

Addresses: parse, same, exists, explain, extract, format

The sheet as data: list, export, sample, stats, nearest, join, cluster, postcodes

Quality and research: bench, cite

Sheets: sheets, meta, build, repack, slice, grammar

gridpin query

Single forward query

terminalusage
$ gridpin query [OPTIONS] <INDEX> <Q>
OptionWhat it does
-k <K>[default: 10]
--near <LAT,LON>optional WGS84 focus; widens cityless homonyms and breaks equal-quality ties
--poi <POI>optional POI layer (second .bin): cascades when the address result is weak
--also <ALSO>a sheet of one's own places (`gridpin build --places`), asked before the address sheet
--also-after <ALSO_AFTER>a sheet of places asked only when the address sheet has no answer or only a weak town (the world sheet of towns: `prep/overture_world_places.py`)
--aliases <ALIASES>your own names for places: a CSV with the columns name,address, read before the sheet
--with <FIELDS>extra answer fields: h3[:res], geohash[:len], placekey, codes, street_point, links, provenance, place[:level], verdict, postal[:cc], crs:EPSG:<code>, exists, area, unit
--strictkeep only answers that match the query as written (no fuzzy street, interpolation or neighbour)
--lenientlet a street name of 9-11 letters be two edits away instead of one
--abbrev <TSV>your own abbreviations, written out before the query: a TSV of short form and full form

Examples and when to use it: documentation.

gridpin reverse

Reverse geocoding: coordinates -> nearest indexed addresses (approximate; see precision/distance_m)

terminalusage
$ gridpin reverse [OPTIONS] <INDEX> <LAT> <LON>
OptionWhat it does
-k <K>[default: 3]
--with <FIELDS>extra answer fields: h3[:res], geohash[:len], placekey, codes, street_point, links, provenance, place[:level], verdict, postal[:cc], crs:EPSG:<code>, exists, area, unit

Examples and when to use it: documentation.

gridpin batch

Batch mode: JSONL {"q": ...} in -> JSONL {"results": [...]} out, or a CSV/TSV file in -> the same file with gp_* answer columns out; order preserved

terminalusage
$ gridpin batch [OPTIONS] <INDEX> <INPUT> <OUTPUT>
OptionWhat it does
-k <K>candidates per query (default 10 for JSONL, 1 for CSV/TSV)
--format <FORMAT>input format: jsonl, csv or tsv (default: from the extension; .csv, .tsv/.tab, anything else jsonl); a .geojson or .geojsonl file is read as GeoJSON features
--output-format <OUTPUT_FORMAT>output format for a CSV/TSV input: csv or tsv (default: the input format)
--column <COLUMN>CSV/TSV: the address column, or several joined with ", " ("street,city,postcode"); default: the one column named address, query or q
--columns <COLUMNS>CSV/TSV: the address already split into fields, sent to the engine as such: street=Street,number=No,city=Town,region=State,postcode=ZIP (street required, the rest optional)
--reverseCSV/TSV: each row is a point, answered by its nearest address; adds gp_distance_m
--lat-column <LAT_COLUMN>with --reverse: the latitude column (default: lat or latitude)
--lon-column <LON_COLUMN>with --reverse: the longitude column (default: lon, lng or longitude)
--aliases <ALIASES>your own names for places: a CSV with the columns name,address, read before the sheet
--delimiter <DELIMITER>CSV/TSV: field delimiter of the input (one character or `tab`; default , for CSV and tab for TSV)
--dumpdump candidate features (rank training)
--diagnoseobserve address parsing and candidate stages without changing results
--poi <POI>optional POI layer (second .bin): cascades when the address result is weak
--also <ALSO>a sheet of one's own places (`gridpin build --places`), asked before the address sheet
--also-after <ALSO_AFTER>a sheet of places asked only when the address sheet has no answer or only a weak town (the world sheet of towns: `prep/overture_world_places.py`)
--with <FIELDS>extra answer fields: h3[:res], geohash[:len], placekey, codes, street_point, links, provenance, place[:level], verdict, postal[:cc], crs:EPSG:<code>, exists, area, unit
--strictkeep only answers that match the query as written (no fuzzy street, interpolation or neighbour)
--lenientlet a street name of 9-11 letters be two edits away instead of one
--abbrev <TSV>your own abbreviations, written out before the query: a TSV of short form and full form
--aggregate <CELLS>write counts by cell instead of rows, no point anywhere: h3:<level>, geohash:<length> or zones.geojson
--min-count <MIN_COUNT>with --aggregate: cells with fewer rows go into the line "other" [default: 5]
--mask <SPEC>move every point at random in a ring, metres: donut:200-500, and optionally k:5 (at least 5 addresses of the sheet within the move); street and number are left out
--seed <SEED>with --mask: the seed of the draw, so a run can be repeated (default: from the clock, printed)
--linesread one address per line on stdin and write one line per address on stdout, flushed at once: the top answer as JSON or an empty line (TabSeparated escapes); input and output are `-`. For a ClickHouse executable function or any pipe
--receiptwrite OUTPUT.receipt.json beside the output: engine version, SHA-256 of the sheet, the input and the output, the command line and the time — the method of the step, in a form one can check
--replace-geometryGeoJSON input: put the answer's point in place of each Feature's geometry
--resumeJSONL input: continue a run that was cut off — keep the rows in OUTPUT.partial (or in OUTPUT) and answer the rest
--quietno progress line on stderr

Examples and when to use it: documentation.

gridpin serve

Serve one sheet over local HTTP: /v1/geocode, /v1/reverse and Nominatim-compatible /search, /reverse, /status. Prints `listening on http://HOST:PORT` first

terminalusage
$ gridpin serve [OPTIONS] [INDEX]
OptionWhat it does
--poi <POI>optional POI layer (second .bin): cascades when the address result is weak
--also <ALSO>a sheet of one's own places (`gridpin build --places`), asked before the address sheet
--also-after <ALSO_AFTER>a sheet of places asked only when the address sheet has no answer or only a weak town (the world sheet of towns: `prep/overture_world_places.py`)
--sheets <SHEETS>more country sheets in the same server: a query is asked of the sheet `country=` names, or of the one whose country closes the query (a shared table of country names and ISO codes), otherwise of the first sheet; answers carry `country_<cc>`
--host <HOST>address to listen on; 127.0.0.1 keeps the server on this machine [default: 127.0.0.1]
--port <PORT>port; 0 picks a free one (printed on the first line) [default: 8080]
--threads <THREADS>connections handled at once (default: cores minus two, at least 1)
--aliases <ALIASES>your own names for places: a CSV with the columns name,address, read before the sheet
--probe <PROBE>only GET this http:// URL and exit 0 on status 200 (container health checks)

Examples and when to use it: documentation.

gridpin parse

How the engine reads an address line: first-hypothesis words, postcode, house number, top answer

terminalusage
$ gridpin parse [OPTIONS] <INDEX> <Q>
OptionWhat it does
--poi <POI>optional POI layer (second .bin): cascades when the address result is weak

Examples and when to use it: documentation.

gridpin same

Do two address lines name the same house, street or commune? (`--pairs`: a JSONL file of {"a","b"})

terminalusage
$ gridpin same [OPTIONS] <INDEX> [LINES] [LINES]...
ArgumentWhat it does
<INDEX>[LINES] [LINES]... the two lines; or with --pairs, the input and output JSONL files
OptionWhat it does
--pairstreat the two arguments as an input file of {"a": ..., "b": ...} lines and an output file
--poi <POI>optional POI layer (second .bin): cascades when the address result is weak

Examples and when to use it: documentation.

gridpin exists

Does the address exist in the sheet: yes, maybe or no, and why

terminalusage
$ gridpin exists <INDEX> <Q>

Examples and when to use it: documentation.

gridpin explain

Why the engine answered as it did: the reading, the verdicts, the candidates and what they lost on

terminalusage
$ gridpin explain [OPTIONS] <INDEX> <Q>
OptionWhat it does
--format <FORMAT>text (default) or json [default: text]

Examples and when to use it: documentation.

gridpin extract

Addresses in free text (a letter, a delivery note, an answer of a model), each confirmed by the sheet

terminalusage
$ gridpin extract [OPTIONS] <INDEX>
OptionWhat it does
--text <TEXT>the text file to read (`-`: standard input)
--input <INPUT>a CSV whose column --column holds one text per row
--column <COLUMN>—
--verifyalso report the addresses with a number the sheet does not have, with a reason

Examples and when to use it: documentation.

gridpin format

The top answer laid out as the post of the sheet's country writes an address

terminalusage
$ gridpin format [OPTIONS] <INDEX> <Q>
OptionWhat it does
--layout <LAYOUT>the postal layout: a country code of `postal_formats.tsv` (de, fr, us, br, ...), `default` (street, number, postcode, town) or `sheet`: the layout of the sheet's country [default: sheet]
--out <OUT>what to print: `postal` (the layout above) or `iso20022` (the ISO 20022 `PstlAdr` as JSON: mode structured, hybrid or none, the elements, the checks and whether the address exists) [default: postal]
--xmlwith `--out iso20022`: the `<PstlAdr>` element as XML instead of JSON

Examples and when to use it: documentation.

gridpin list

Addresses of a street, a postcode, a circle, a box or a polygon, as a table

terminalusage
$ gridpin list [OPTIONS] <INDEX>
OptionWhat it does
--street <STREET>a street as you would write it; needs --city or --postcode
--city <CITY>a commune by name
--postcode <POSTCODE>—
--near <LAT,LON,METERS>a circle: LAT,LON,METERS
--bbox <MINLON,MINLAT,MAXLON,MAXLAT>a box: MINLON,MINLAT,MAXLON,MAXLAT
--polygon <FILE>a GeoJSON file with a Polygon or MultiPolygon
--region <REGION>a region by name, from the polygon file <sheet>_admin.bin beside the sheet
--format <FORMAT>csv, jsonl, geojsonl, geojson or gpx (default: from the -o extension, else csv)
--limit <LIMIT>stop after this many addresses
-o, --output <OUTPUT>output file (default: standard output)

Examples and when to use it: documentation.

gridpin export

Copy addresses of a region, a box, a polygon or the whole sheet to a file, with the sheet's licence. For Parquet: DuckDB reads the CSV (see the documentation)

terminalusage
$ gridpin export [OPTIONS] --output <OUTPUT> <INDEX>
OptionWhat it does
--street <STREET>a street as you would write it; needs --city or --postcode
--city <CITY>a commune by name
--postcode <POSTCODE>—
--near <LAT,LON,METERS>a circle: LAT,LON,METERS
--bbox <MINLON,MINLAT,MAXLON,MAXLAT>a box: MINLON,MINLAT,MAXLON,MAXLAT
--polygon <FILE>a GeoJSON file with a Polygon or MultiPolygon
--region <REGION>a region by name, from the polygon file <sheet>_admin.bin beside the sheet
--allthe whole sheet
--format <FORMAT>csv, jsonl, geojsonl, geojson or gpx (default: from the -o extension, else csv)
-o, --output <OUTPUT>—

Examples and when to use it: documentation.

gridpin sample

A random sample of real addresses, for test data; the same --seed gives the same addresses

terminalusage
$ gridpin sample [OPTIONS] <INDEX>
OptionWhat it does
--street <STREET>a street as you would write it; needs --city or --postcode
--city <CITY>a commune by name
--postcode <POSTCODE>—
--near <LAT,LON,METERS>a circle: LAT,LON,METERS
--bbox <MINLON,MINLAT,MAXLON,MAXLAT>a box: MINLON,MINLAT,MAXLON,MAXLAT
--polygon <FILE>a GeoJSON file with a Polygon or MultiPolygon
--region <REGION>a region by name, from the polygon file <sheet>_admin.bin beside the sheet
--n <N>how many addresses [default: 1000]
--seed <SEED>default: the clock
--format <FORMAT>csv, jsonl, geojsonl, geojson or gpx (default: from the -o extension, else csv)
-o, --output <OUTPUT>output file (default: standard output)

Examples and when to use it: documentation.

gridpin stats

How many addresses each grid cell of 0.01 degree holds: where a sheet is dense, thin or empty

terminalusage
$ gridpin stats [OPTIONS] <INDEX>
OptionWhat it does
--street <STREET>a street as you would write it; needs --city or --postcode
--city <CITY>a commune by name
--postcode <POSTCODE>—
--near <LAT,LON,METERS>a circle: LAT,LON,METERS
--bbox <MINLON,MINLAT,MAXLON,MAXLAT>a box: MINLON,MINLAT,MAXLON,MAXLAT
--polygon <FILE>a GeoJSON file with a Polygon or MultiPolygon
--region <REGION>a region by name, from the polygon file <sheet>_admin.bin beside the sheet
--format <FORMAT>csv or geojson (default: from the -o extension, else csv)
-o, --output <OUTPUT>output file (default: standard output)

Examples and when to use it: documentation.

gridpin nearest

For each row of the first file, the nearest rows of the second by straight-line distance. A file with lat and lon columns is read as points; other files are geocoded on --sheet

terminalusage
$ gridpin nearest [OPTIONS] <ROWS> <LIST>
OptionWhat it does
--sheet <SHEET>the sheet to geocode addresses on, when a file has no coordinates
--k <K>[default: 1]
--max-km <MAX_KM>leave out anything farther than this
--id-column <ID_COLUMN>the column of the second file that names a row (default: id, else its line number)
--rows-column <ROWS_COLUMN>the address column of the first file
--list-column <LIST_COLUMN>the address column of the second file
-o, --output <OUTPUT>output file (default: standard output)

Examples and when to use it: documentation.

gridpin join

Give each row the properties of the zone it falls in, from a GeoJSON file of polygons. A file with lat and lon columns is read as points; another is geocoded on --sheet

terminalusage
$ gridpin join [OPTIONS] <ROWS> <ZONES>
OptionWhat it does
--sheet <SHEET>the sheet to geocode addresses on, when the file has no coordinates
--column <COLUMN>the address column
--property <PROPERTY>a property to copy; repeat for several (default: every property)
-o, --output <OUTPUT>output file (default: standard output)

Examples and when to use it: documentation.

gridpin cluster

Delivery zones and rounds: k-means of the points of a CSV (lat, lon columns), sizes kept under --max-size

terminalusage
$ gridpin cluster [OPTIONS] --k <K> --out <OUT> <INPUT>
OptionWhat it does
--k <K>—
--max-size <MAX_SIZE>—
--seed <SEED>[default: 1]
-o, --out <OUT>—
--geojson <GEOJSON>also the convex hull of each zone (GeoJSON)

Examples and when to use it: documentation.

gridpin postcodes

An outline of each postcode, drawn from the houses' H3 cells (GeoJSON)

terminalusage
$ gridpin postcodes [OPTIONS] --out <OUT> <INDEX>
OptionWhat it does
--res <RES>H3 resolution of the cells (9: about 0.1 km²) [default: 9]
-o, --out <OUT>—

Examples and when to use it: documentation.

gridpin bench

How close the answers come to points you know: a CSV with an address and lat, lon of the truth. Prints rows, hits within 150 m, median, p95 and the match rate as JSON

terminalusage
$ gridpin bench [OPTIONS] <INDEX> <INPUT>
OptionWhat it does
--column <COLUMN>the address column, or several joined with ", " (default: the one named address, query or q)
--lat-column <LAT_COLUMN>the latitude column of the truth (default: lat or latitude)
--lon-column <LON_COLUMN>the longitude column of the truth (default: lon, lng or longitude)
--min-match-rate <MIN_MATCH_RATE>fail (exit 1) when fewer rows than this share are matched at an address (e.g. 0.85)
-o, --output <OUTPUT>also write each row with its answer and its distance to the truth (CSV)

Examples and when to use it: documentation.

gridpin cite

A citation of the sheet a study geocoded with: release, data date, licence, SHA-256, engine version

terminalusage
$ gridpin cite [OPTIONS] <SHEET>
OptionWhat it does
--format <FORMAT>bibtex, apa or cff (CITATION.cff) [default: bibtex]

Examples and when to use it: documentation.

gridpin sheets

Country sheets of this release: list, where they are kept, verify, download

terminalusage
$ gridpin sheets <COMMAND>

gridpin sheets list

Every sheet of the release: code, country, size, and whether it is downloaded

terminalusage
$ gridpin sheets list [OPTIONS]
OptionWhat it does
--jsonone JSON array, with file, SHA-256, address and local path

gridpin sheets where

The folder of downloaded sheets, or with a country the path of its sheet

terminalusage
$ gridpin sheets where [COUNTRY]

gridpin sheets verify

Check size and SHA-256 against the signed release (no argument: every downloaded sheet)

terminalusage
$ gridpin sheets verify [TARGETS]...

gridpin sheets fetch

Download a sheet with the system curl and check it before it is used

terminalusage
$ gridpin sheets fetch [OPTIONS] <COUNTRY>
OptionWhat it does
--offlinenever use the network (also GRIDPIN_OFFLINE=1): print the command to run elsewhere

Examples and when to use it: documentation.

gridpin meta

Print the provenance/identity record of a sheet (SEC_META, v6+)

terminalusage
$ gridpin meta [OPTIONS] <INDEX>
OptionWhat it does
--jsonmachine-readable JSON object (safe against values with embedded newlines)

Examples and when to use it: documentation.

gridpin build

Build an index from a sorted CSV stream (prep/export_build.py)

terminalusage
$ gridpin build [OPTIONS] <INPUT> <OUT>
OptionWhat it does
--model <MODEL>optional parser model (ml/parser_v0.bin)
--rank <RANK>optional ranking weights (ml/rank_v0.bin)
--rules <RULES>optional rules-in-data directory (TSV files)
--mark <MARK>optional watermark string to embed in the index (no-op without the watermark feature) new in 0.9.0
--meta <META>build manifest (JSON): provenance + country/layer identity -> SEC_META (v6+). Distributed sheets MUST carry one; omitting it prints a loud warning
--placesthe input is a table of one's own places (name, lat, lon[, group][, code][, aliases]), not the builder's CSV; the sheet answers as `--also` (before the country's sheet) or as `--poi`
--license <LICENSE>with --places: the license line the sheet carries (default "the owner's own data")
--first-winswith --places: a name already taken in its group is left out (counted) instead of refused

Examples and when to use it: documentation.

gridpin repack

Replace SEC_META in a current-format sheet without rebuilding data sections. Older v5/v6 sheets must be rebuilt because v7 changes house_blocks

terminalusage
$ gridpin repack --meta <META> <INPUT> <OUTPUT>
OptionWhat it does
--meta <META>build manifest (JSON): provenance + country/layer identity

Examples and when to use it: documentation.

gridpin slice

A smaller sheet cut from a sheet by a box, a region, a postcode or a polygon (the source is not changed)

terminalusage
$ gridpin slice [OPTIONS] --out <OUT> <INDEX>
OptionWhat it does
--street <STREET>a street as you would write it; needs --city or --postcode
--city <CITY>a commune by name
--postcode <POSTCODE>—
--near <LAT,LON,METERS>a circle: LAT,LON,METERS
--bbox <MINLON,MINLAT,MAXLON,MAXLAT>a box: MINLON,MINLAT,MAXLON,MAXLAT
--polygon <FILE>a GeoJSON file with a Polygon or MultiPolygon
--region <REGION>a region by name, from the polygon file <sheet>_admin.bin beside the sheet
-o, --out <OUT>—

Examples and when to use it: documentation.

gridpin grammar

The address grammar the sheet's rules declare, in the open schema docs-public/address-grammar.schema.json

terminalusage
$ gridpin grammar <INDEX>

Examples and when to use it: documentation.

gridpin-pro

The commands of gridpin-pro, the build that comes with a Starter or Pro subscription: what each is for, with examples. Every command of gridpin above works in it too.

gridpin-pro dedupe

Group the rows of a CSV that name one address, however they write it

terminalusage
$ gridpin-pro dedupe [OPTIONS] --output <OUTPUT> <SHEET> <INPUT>
ArgumentWhat it does
<SHEET>the country sheet (.bin)
<INPUT>—
OptionWhat it does
-o, --output <OUTPUT>—
--column <COLUMN>the address column, or several joined with ", " (default: the one named address, query or q)
--license <FILE>the licence file (default: GRIDPIN_PRO_LICENSE, gridpin-pro.lic next to the program, ~/.config/gridpin/pro.lic)
--level <LEVEL>house: same house, neither answer weak. street: same street [default: house]

Examples: gridpin-pro documentation.

gridpin-pro compare

What changed between two answered CSV files (outputs of `gridpin batch`)

terminalusage
$ gridpin-pro compare [OPTIONS] --output <OUTPUT> <A> <B>
OptionWhat it does
-o, --output <OUTPUT>—
--key <KEY>match rows by this column instead of by their order
--license <FILE>the licence file (default: GRIDPIN_PRO_LICENSE, gridpin-pro.lic next to the program, ~/.config/gridpin/pro.lic)
--threshold-m <THRESHOLD_M>a point moved farther than this counts as changed [default: 150]

Examples: gridpin-pro documentation.

gridpin-pro batch

`gridpin batch` for a CSV, with data layers or verdicts appended to each row, and a report page

terminalusage
$ gridpin-pro batch [OPTIONS] <SHEET> <INPUT> <OUTPUT>
OptionWhat it does
--append <APPEND>the layer to append; `census`: United States tract, voting district, school district; `id`: the address id (`gp_address_id`, the same across releases while the address keeps its name)
--layers <LAYERS>the folder with the layer files (us_tract.bin, us_vtd.bin, us_school.bin), or a registry layers.json for `--append regions:nuts,lau`, `building`, `admin` and `--near`
--license <FILE>the licence file (default: GRIDPIN_PRO_LICENSE, gridpin-pro.lic next to the program, ~/.config/gridpin/pro.lic)
--near <NEAR>the nearest object of each category within a radius: `hospital:1000,school:500` (needs --layers json)
--prove <PROVE>does the address written in a document name the declared house? `text=<column>,declared=<column>`; appends gp_prove (same, different, not_found_in_text, declared_unresolved), gp_prove_text_address, gp_prove_m
--riskthe chance the point is wrong: gp_risk (0..1), gp_risk_reason, gp_ask (what to ask the customer)
--risk-table <RISK_TABLE>with --risk: bins from this file (JSON of `risk-calibrate`) instead of the built-in ones
--verdictjudge each row: verdict per field and the action ACCEPT, CONFIRM or UNMATCHED
--report <REPORT>also write a report page (HTML that opens without a network); implies --verdict
--review <REVIEW>also write a review page: the rows to check, up to five candidates each, decisions exported as CSV for `apply-review`; implies --verdict
--column <COLUMN>the address column, or several joined with ", " (default: the one named address, query or q)

Examples: gridpin-pro documentation.

gridpin-pro audit

A page about the health of an address base: duplicates, rows without an answer and why, field verdicts

terminalusage
$ gridpin-pro audit [OPTIONS] --output <OUTPUT> <SHEET> <INPUT>
OptionWhat it does
-o, --output <OUTPUT>—
--column <COLUMN>the address column, or several joined with ", " (default: the one named address, query or q)
--license <FILE>the licence file (default: GRIDPIN_PRO_LICENSE, gridpin-pro.lic next to the program, ~/.config/gridpin/pro.lic)

Examples: gridpin-pro documentation.

gridpin-pro iso20022-check

The postal addresses of an ISO 20022 message (pain.001, pacs.008) checked against the sheet; --rewrite writes a copy where unstructured and hybrid addresses the sheet can make better are structured

terminalusage
$ gridpin-pro iso20022-check [OPTIONS] <SHEET> <MESSAGE>
OptionWhat it does
--csv <CSV>one row per PstlAdr: party, form as written, the line asked, mode, checks, exists, action
--license <FILE>the licence file (default: GRIDPIN_PRO_LICENSE, gridpin-pro.lic next to the program, ~/.config/gridpin/pro.lic)
--rewrite <REWRITE>the message with the better addresses written in; every other byte stays

gridpin-pro learn-grammar

The address grammar of a country counted over its sheet (the open schema of `gridpin grammar`, measured)

terminalusage
$ gridpin-pro learn-grammar [OPTIONS] <SHEET>
OptionWhat it does
--limit <LIMIT>count about this many houses, taken evenly over the whole sheet (0: every house) [default: 0]
--license <FILE>the licence file (default: GRIDPIN_PRO_LICENSE, gridpin-pro.lic next to the program, ~/.config/gridpin/pro.lic)
-o, --out <OUT>write the grammar here instead of printing it

Examples: gridpin-pro documentation.

gridpin-pro registry-audit

Defects of the address registry a sheet holds: duplicates, gaps in numbering, two forms of a name, many postcodes on a street, houses far from their street

terminalusage
$ gridpin-pro registry-audit [OPTIONS] <SHEET>
OptionWhat it does
-o, --out <OUT>the summary (JSON); default: printed
--license <FILE>the licence file (default: GRIDPIN_PRO_LICENSE, gridpin-pro.lic next to the program, ~/.config/gridpin/pro.lic)
--page <PAGE>also a page (HTML that opens without a network)

Examples: gridpin-pro documentation.

gridpin-pro propose-number

A house number for a new building at a point, from the houses of its street (axis, side, parity)

terminalusage
$ gridpin-pro propose-number [OPTIONS] --street <STREET> --city <CITY> --lat <LAT> --lon <LON> <SHEET>
OptionWhat it does
--street <STREET>—
--city <CITY>—
--license <FILE>the licence file (default: GRIDPIN_PRO_LICENSE, gridpin-pro.lic next to the program, ~/.config/gridpin/pro.lic)
--lat <LAT>—
--lon <LON>—

Examples: gridpin-pro documentation.

gridpin-pro noise-profile

How people of a country write addresses: shares of the messy forms in query sets, as a `gridpin.messy` profile

terminalusage
$ gridpin-pro noise-profile [OPTIONS] --sets <SETS> <COUNTRY>
ArgumentWhat it does
<COUNTRY>the country code written in the profile
OptionWhat it does
--sets <SETS>query sets (JSON lines with "q" or "query"), comma-separated
--license <FILE>the licence file (default: GRIDPIN_PRO_LICENSE, gridpin-pro.lic next to the program, ~/.config/gridpin/pro.lic)

Examples: gridpin-pro documentation.

gridpin-pro negatives

Plausible addresses that do not exist (each checked by the engine): past the street's numbers, in another commune, under another postcode

terminalusage
$ gridpin-pro negatives [OPTIONS] --out <OUT> <SHEET>
OptionWhat it does
-n <N>[default: 1000]
--license <FILE>the licence file (default: GRIDPIN_PRO_LICENSE, gridpin-pro.lic next to the program, ~/.config/gridpin/pro.lic)
--seed <SEED>[default: 1]
-o, --out <OUT>—

Examples: gridpin-pro documentation.

gridpin-pro risk-calibrate

Bins of `batch --risk` measured on your own file: a `delivered` column (1/0) or truth `lat`,`lon`

terminalusage
$ gridpin-pro risk-calibrate [OPTIONS] <SHEET> <INPUT>
OptionWhat it does
--column <COLUMN>the address column, or several joined with ", " (default: the one named address, query or q)
--license <FILE>the licence file (default: GRIDPIN_PRO_LICENSE, gridpin-pro.lic next to the program, ~/.config/gridpin/pro.lic)

Examples: gridpin-pro documentation.

gridpin-pro synth

Synthetic households on real addresses (no names, no personal data): a base for transport and epidemic models

terminalusage
$ gridpin-pro synth [OPTIONS] --out <OUT> <SHEET>
OptionWhat it does
--households <HOUSEHOLDS>[default: 10000]
--license <FILE>the licence file (default: GRIDPIN_PRO_LICENSE, gridpin-pro.lic next to the program, ~/.config/gridpin/pro.lic)
--seed <SEED>[default: 1]
--weights <WEIGHTS>CSV area,weight (area = a commune): households spread over communes in proportion
-o, --out <OUT>—

Examples: gridpin-pro documentation.

gridpin-pro id-map

Address ids of two releases: same, moved, removed, added

terminalusage
$ gridpin-pro id-map [OPTIONS] --out <OUT> <OLD> <NEW>
OptionWhat it does
-o, --out <OUT>—
--license <FILE>the licence file (default: GRIDPIN_PRO_LICENSE, gridpin-pro.lic next to the program, ~/.config/gridpin/pro.lic)

Examples: gridpin-pro documentation.

gridpin-pro lifecycle

When each address appeared and disappeared across releases (in version order)

terminalusage
$ gridpin-pro lifecycle [OPTIONS] --out <OUT> [SHEETS]...
OptionWhat it does
-o, --out <OUT>—
--license <FILE>the licence file (default: GRIDPIN_PRO_LICENSE, gridpin-pro.lic next to the program, ~/.config/gridpin/pro.lic)

Examples: gridpin-pro documentation.

gridpin-pro match-keys

Keys of the rows of a CSV that two companies can compare without showing an address: HMAC(secret, id)

terminalusage
$ gridpin-pro match-keys [OPTIONS] --secret <SECRET> --out <OUT> <SHEET> <INPUT>
OptionWhat it does
--secret <SECRET>at least 32 hex digits, held by both sides
--column <COLUMN>—
--license <FILE>the licence file (default: GRIDPIN_PRO_LICENSE, gridpin-pro.lic next to the program, ~/.config/gridpin/pro.lic)
-o, --out <OUT>—

Examples: gridpin-pro documentation.

gridpin-pro match-intersect

The keys two files of match-keys share

terminalusage
$ gridpin-pro match-intersect [OPTIONS] --out <OUT> <A> <B>
OptionWhat it does
-o, --out <OUT>—
--license <FILE>the licence file (default: GRIDPIN_PRO_LICENSE, gridpin-pro.lic next to the program, ~/.config/gridpin/pro.lic)

Examples: gridpin-pro documentation.

gridpin-pro verify-chain

Check the chain of `gridpin batch --receipt` receipts of a folder and every output's hash

terminalusage
$ gridpin-pro verify-chain [OPTIONS] <DIR>
OptionWhat it does
--license <FILE>the licence file (default: GRIDPIN_PRO_LICENSE, gridpin-pro.lic next to the program, ~/.config/gridpin/pro.lic)

Examples: gridpin-pro documentation.

gridpin-pro categories

The categories of a POI layer's table (name,lat,lon,category CSV, gzip or not), with their counts

terminalusage
$ gridpin-pro categories [OPTIONS] <TABLE>
OptionWhat it does
--license <FILE>the licence file (default: GRIDPIN_PRO_LICENSE, gridpin-pro.lic next to the program, ~/.config/gridpin/pro.lic)

Examples: gridpin-pro documentation.

gridpin-pro apply-review

Put the candidates chosen on a review page (decisions.csv) into the rows

terminalusage
$ gridpin-pro apply-review [OPTIONS] --output <OUTPUT> <SHEET> <DECISIONS> <INPUT>
OptionWhat it does
-o, --output <OUTPUT>—
--column <COLUMN>—
--license <FILE>the licence file (default: GRIDPIN_PRO_LICENSE, gridpin-pro.lic next to the program, ~/.config/gridpin/pro.lic)

Examples: gridpin-pro documentation.

gridpin-pro second-opinion

Another geocoder's answers (a file you have) against ours, offline: agree, disagree, we only, they only

terminalusage
$ gridpin-pro second-opinion [OPTIONS] --out <OUT> <SHEET> <THEIR>
OptionWhat it does
--format <FORMAT>google, mapbox, here or generic: which columns hold the address and the point [default: generic]
--column <COLUMN>the address column, when it is not the format's own
--license <FILE>the licence file (default: GRIDPIN_PRO_LICENSE, gridpin-pro.lic next to the program, ~/.config/gridpin/pro.lic)
-o, --out <OUT>the page (HTML that opens without a network)
--disagreements <DISAGREEMENTS>also every row that does not agree (CSV)

Examples: gridpin-pro documentation.

gridpin-pro serve

The open server with keys, daily limits, /metrics, a request log and batch jobs

terminalusage
$ gridpin-pro serve [OPTIONS] --keys <KEYS> <SHEET>
OptionWhat it does
--keys <KEYS>key,name,daily_limit (0: no limit); requests carry Authorization: Bearer <key>
--license <FILE>the licence file (default: GRIDPIN_PRO_LICENSE, gridpin-pro.lic next to the program, ~/.config/gridpin/pro.lic)
--log <LOG>one JSON line per request (no query text unless --log-queries)
--log-queriesalso log the query text: only the `q` parameter of GET requests (POST bodies, structured fields, Google's `address` and /v1/extract are not logged)
--jobs-dir <JOBS_DIR>a folder for batch jobs (POST /v1/jobs); without it there are no jobs
--max-job-mb <MAX_JOB_MB>[default: 200]
--host <HOST>[default: 127.0.0.1]
--port <PORT>[default: 8080]
--threads <THREADS>[default: 4]

Examples: gridpin-pro documentation.

gridpin-pro sheet-diff

What changed between two releases of one country's sheet: added, removed, moved, new postcode

terminalusage
$ gridpin-pro sheet-diff [OPTIONS] --output <OUTPUT> <OLD> <NEW>
OptionWhat it does
-o, --output <OUTPUT>the changes, one row each (CSV)
--license <FILE>the licence file (default: GRIDPIN_PRO_LICENSE, gridpin-pro.lic next to the program, ~/.config/gridpin/pro.lic)
--summary <SUMMARY>the summary (JSON, the fields of tools/sheet_diff.py --json); default: printed
--bbox <BBOX>only addresses in this box: MINLON,MINLAT,MAXLON,MAXLAT
--zone <ZONE>only addresses inside these polygons (GeoJSON)
--threshold <THRESHOLD>a move further than this is a change, metres [default: 50]
--top <TOP>communes in the lists of outflow and inflow [default: 10]
--feed <FEED>the change feed of the zone (Markdown), for whoever holds it

Examples: gridpin-pro documentation.