Skip to main content

A KOF file parser. Follows Norkart's KOF 2.0 specification from 2005.

Project description

KOF Parser

security: bandit security: safety code style Checked with mypy python

Python package for parsing and generating KOF files.

References:

NORWEGIAN GEOTECHNICAL SOCIETY

Latest releases see CHANGES.md

Installation (end user)

pip install kof-parser

Basic usage

Read a kof file

from kof_parser import KOFParser

parser = KOFParser()

# ETRS89/NTM10:
srid = 5110

locations = parser.parse('tests/data/test.kof', result_srid=srid, file_srid=srid)

for location in locations:
    print(location)

# Output:
# name='SMPLOC1' methods=[] point_easting=112892.81 point_northing=1217083.64 point_z=1.0 srid=5110
# name='SMPLOC2' methods=['TOT'] point_easting=112893.15 point_northing=1217079.46 point_z=2.0 srid=5110
# name='SMPLOC3' methods=['CPT'] point_easting=112891.88 point_northing=1217073.01 point_z=0.0 srid=5110
# name='SMPLOC4' methods=['RP'] point_easting=112891.9 point_northing=1217067.54 point_z=0.0 srid=5110
# name='SMPLOC5' methods=['SA'] point_easting=112902.92 point_northing=1217074.73 point_z=0.0 srid=5110
# name='SMPLOC6' methods=['PZ'] point_easting=112901.11 point_northing=1217069.56 point_z=0.0 srid=5110
# name='SMPLOC7' methods=['PZ'] point_easting=1217069.56 point_northing=112901.11 point_z=0.0 srid=5110

Write a kof file

To write a KOF file you need to build up a model of locations and methods.

from kof_parser import KOFWriter
from kof_parser import Location

kof_writer = KOFWriter()

srid = 5110
locations = [Location(name='SMPLOC1', point_easting=112892.81, point_northing=1217083.64, point_z=1.0),
             Location(name='SMPLOC2', point_easting=112893.15, point_northing=1217079.46, point_z=2.0, methods=['TOT']),
             Location(name='SMPLOC3', point_easting=112891.88, point_northing=1217073.01, point_z=0.0, methods=['CPT'])]

kof_string = kof_writer.writeKOF(
    project_id='project_id', project_name='cool-name', locations=locations, srid=srid
)

print(kof_string)
# Output:
# 00 KOF Export from NGI's KOF parser
# 00 Project: project_id. Name: cool-name
# 00 Spatial Reference ID (SRID): 5110
# 00 Export date (UTC): 2022-08-22 13:49:44.394607
# 00 Oppdrag      Dato     Ver K.sys   Komm $21100000000 Observer    
# 01 cool-name    22082022   1     210      $11100000000             
# 05 SMPLOC1             1217083.640  112892.810  1.000                
# 05 SMPLOC2    2418     1217079.460  112893.150  2.000                
# 05 SMPLOC3    2407     1217073.010  112891.880  0.000                

Getting Started developing

Software dependencies

Before you start, install:

  • Python 3.9 or higher
  • Poetry 1.6.1
  • black code formatter

Clone this repository

Use git to clone this repository.

Install

There are several combinations of how to set up a local development environment.

We use Poetry for dependency management. See Install poetry if needed.

Then, from the project root folder run:

poetry install

Build and Test

Run in the project root folder:

poetry run pytest 

Build the package wheel:

poetry build

Contribute

Please start by adding an issue before submitting any pull requests.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kof_parser-0.1.1.tar.gz (11.3 kB view details)

Uploaded Source

Built Distribution

kof_parser-0.1.1-py3-none-any.whl (11.5 kB view details)

Uploaded Python 3

File details

Details for the file kof_parser-0.1.1.tar.gz.

File metadata

  • Download URL: kof_parser-0.1.1.tar.gz
  • Upload date:
  • Size: 11.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.6.1 CPython/3.11.6 Linux/6.2.0-1015-azure

File hashes

Hashes for kof_parser-0.1.1.tar.gz
Algorithm Hash digest
SHA256 240539c0e3e9aeb9c126779df5448bf7aff8b6bd5111d25fa07b896de5f8918b
MD5 62281a9b14b31880e13866370c050d89
BLAKE2b-256 34ff7f03cdd4528b8027d424e121143276cbf24f9ceeb87740cf9180adcc9a1a

See more details on using hashes here.

File details

Details for the file kof_parser-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: kof_parser-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 11.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.6.1 CPython/3.11.6 Linux/6.2.0-1015-azure

File hashes

Hashes for kof_parser-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6e1172149b1779d91370af793c6f781c4c16dbf8d0ed445408bdd5ad753935bb
MD5 bb79367aea6dc8e6958f60b1fc60bedb
BLAKE2b-256 df243e1451e8a0d4cd6f739f1c72cdcaf867e18b08f4b22f3603afa0b028f8dc

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page