Skip to main content

Python tools for working with the Danish Kvadratnet tiling scheme.

Project description

Kvadratnet is a set of tools that makes working with the Danish Kvadratnet easier.

Build Status Coverage Status

Introduction

The Danish Kvadratnet is a geographical tiling scheme based on UTM coordinates. The tiling scheme is a national standard for dividing nation-wide geographical datasets into smaller pieces.

The Danish Kvadratnet was originally created as a collaboration between Statitics Denmark and the National Survey and Cadastre of Denmark as a static administrative geographical subdivision of the country. The reasoning behind this was that usual administrative boundaries, such as municipal boundaries, are known to change from time to time and are therefore not very suitable as a geographical administrative index.

The Danish Kvadratnet consist of a several networks that covers the country with square tiles of varying sizes. Supported tile sizes are: 100m, 250m, 1km, 10km, 50km and 100km. Individual tiles are identified by tile size and the coordinates of the lower left corner of a tile. The coordinates are truncated accordinging to the size of the tile i.e. 1km_6452_523. Examples of tile identifiers can be seen in the table below:

Network

Tile name example

100km

100km_62_5

50km

50km_620_55

10km

10km_622_57

1km

1km_6223_576

250m

250m_622375_57550

100m

100m_62237_5756

Use of the kvadratnet module is not limited to the geographical area of Denmark. The tiling scheme can be applied to any region on earth as the UTM coordinate system is defined worlwide. Care has to be taken in case use of the tiling scheme spans more than one UTM zone, since coordinates are duplicated across zones. This can be solved by keeping all data in the same UTM zone, even though some of it might be placed outside the zone. By using robust UTM coordinate transformation libraries, such as the Extended Transverse Mercator implementation in proj.4, data can be kept in the same coordinate system even though it spans several UTM zones. This exact procedure is used by the Grenland Survey, Asiaq, which organizes data across 10 UTM zones.

Example

Example of using kvadratnet

Suppose you have a range of files organized in the 1km network. We want to count how many 1km tiles are present in each parent 10km tile.

from collections import Counter
import kvadratnet

files = ['dtm_1km_6121_867.tif', 'dtm_1km_6125_866.tif',
         'dtm_1km_6125_862.tif', 'dtm_1km_6423_512.tif',
         'dtm_1km_6253_234.tif', 'dtm_1km_6235_634.tif',
         'dtm_1km_6424_513.tif', 'dtm_lkm_5223_523.tif',
         'dtm_1km_6251_236.tif', 'dtm_1km_6424_517.tif']

counter = Counter()

for filename in files:
    try:
        name = kvadratnet.tile_name(filename)
    except:
        counter['bad_name'] += 1
    parent = kvadratnet.parent_tile(name, '10km')
    counter[parent] += 1

print(counter)
# Counter({'10km_642_51': 4, '10km_612_86': 3, '10km_625_23': 2, '10km_623_63': 1, 'bad_name': 1})

Installation

Installation can be done either via

pip install kvadratnet

or by downloading the source code and running

python setup.py install

Testing

nose is used for testing. The test-suite can be invoked by running

nosetests -v

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

kvadratnet-0.2.2-py2.py3-none-any.whl (10.6 kB view details)

Uploaded Python 2 Python 3

kvadratnet-0.2.2-py2.7.egg (13.2 kB view details)

Uploaded Source

File details

Details for the file kvadratnet-0.2.2-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for kvadratnet-0.2.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 a314ce6c581b24407a5f6a7378d372e41acdfb498110092e0ba4648ac3691442
MD5 b4be694ac253d61bdd35372d133b38a2
BLAKE2b-256 911782a555fc12b580557ae361107059c2600b0e80aba9802d50403832eaea84

See more details on using hashes here.

File details

Details for the file kvadratnet-0.2.2-py2.7.egg.

File metadata

File hashes

Hashes for kvadratnet-0.2.2-py2.7.egg
Algorithm Hash digest
SHA256 e81f7f8b25f4f072053b3c195fcc6d91c3a131ee9e7876d5ad769ef0d1c41f50
MD5 d884c3e04d2c9881b53ef6e2776415eb
BLAKE2b-256 6ed6e42f5cb25d2c5cd5852c2d46e608fa377e0554dd4bc35b09d8294d140dbc

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