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:

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 uv for dependency management. See the uv docs if needed.

Then, from the project root folder run:

uv sync --dev

This will create a virtual environment (by default in .venv) and install all dependencies including dev tools.

Build and Test

Run tests in the project root folder:

uv run pytest

Build the package wheel:

uv 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.4.tar.gz (127.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kof_parser-0.1.4-py3-none-any.whl (11.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: kof_parser-0.1.4.tar.gz
  • Upload date:
  • Size: 127.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for kof_parser-0.1.4.tar.gz
Algorithm Hash digest
SHA256 78ffef33c9d1567b2a6d50a1615d75cb767312b8040bc774e8432ac352b6ca3c
MD5 6985ba41948aee5ec7ec82e198c1a82a
BLAKE2b-256 a25712192356094669244ea91535660c3fd8700bdbaf74dbd040fc3913a3bf7f

See more details on using hashes here.

Provenance

The following attestation bundles were made for kof_parser-0.1.4.tar.gz:

Publisher: release.yaml on norwegian-geotechnical-institute/kof-parser

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

  • Download URL: kof_parser-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 11.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for kof_parser-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 37b0084351eef76269db8c93f79830f9e3fda7a3facadcbfb8f4a38855e5b943
MD5 aa3521cdf4351d5f9e64d0f4123a54e3
BLAKE2b-256 7a8a835087650ef9b0e5a5f99a01d2473dd23a1285e78abde770efdb9ac4263e

See more details on using hashes here.

Provenance

The following attestation bundles were made for kof_parser-0.1.4-py3-none-any.whl:

Publisher: release.yaml on norwegian-geotechnical-institute/kof-parser

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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