forked from TrueCloudLab/frostfs-locode-db
WIP: Source of UN/LOCODE database generated by FrostFS CLI.
4901a1785b
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru> |
||
---|---|---|
.github | ||
CHANGELOG.md | ||
continents.geojson.gz | ||
LICENSE | ||
README.md |
UN/LOCODE database for NeoFS
Overview
This repository contains instructions to generate UN/LOCODE database for NeoFS and raw representation of it. NeoFS uses UN/LOCODE in storage node attributes and storage policies. Inner ring nodes converts UN/LOCODE into human-readable set of attributes such as continent, country name, etc. You can find out more in NeoFS Specification.
Build
Prerequisites
- Latest neofs-cli
- UN/LOCODE database in CSV format
- OpenFlight Airports database
- OpenFlight Countries database
Run
First unzip file with GeoJSON continents from this repository.
$ gunzip continents.geojson
Then run neofs-cli command to generate boltDB file.
$ neofs-cli util locode generate --help
generate UN/LOCODE database for NeoFS
Usage:
neofs-cli util locode generate [flags]
Flags:
--airports string Path to OpenFlights airport database (csv)
--continents string Path to continent polygons (GeoJSON)
--countries string Path to OpenFlights country database (csv)
-h, --help help for generate
--in strings List of paths to UN/LOCODE tables (csv)
--out string Target path for generated database
--subdiv string Path to UN/LOCODE subdivision database (csv)
$ ./neofs-cli util locode generate \
--airports airports.dat \
--continents continents.geojson \
--countries countries.dat \
--in 2020-2\ UNLOCODE\ CodeListPart1.csv,2020-2\ UNLOCODE\ CodeListPart2.csv,2020-2\ UNLOCODE\ CodeListPart3.csv \
--subdiv 2020-2\ SubdivisionCodes.csv \
--out locode_db
Database generation might take some time!
You can test generated database with neofs-cli.
$ neofs-cli util locode info --db locode_db --locode 'RU LED'
Country: Russia
Location: Saint Petersburg (ex Leningrad)
Continent: Europe
Subdivision: [SPE] Sankt-Peterburg
Coordinates: 59.53, 30.15
License
This project is licensed under the CC Attribution-ShareAlike 4.0 International - see the LICENSE file for details