kmsgrid is a small utility that makes it easy to work with the various datum grid files made by KMS/DTU for the transformation library TrLib (KMSTrans).
Using kmsgrid
kmsgrid is both a Python module and a command line utility.
Command line
The kmsgrid command line utility comprises two sub-utilities: “info” and “translate”.
$ kmsgrid --help
usage: kmsgrid [-h] {translate,info,help} ...
Read binary grid files from trlib.
optional arguments:
-h, --help show this help message and exit
Subcommands:
Valid subcommands
{translate,info,help}
additional help
Info
The info sub-command is used for getting information about a grid. Information can be queried about a single point, or about the entire file.
$ kmsgrid info --help
usage: kmsgrid info [-h] [--datum] [--mode] [--point I J] grid
positional arguments:
grid Binary grid file.
optional arguments:
-h, --help show this help message and exit
--point I J Value(s) at a grid index (I,J). Prints values from all
dimensions of the grid.
Get information about a 3D grid:
$ kmsgrid info nkgrf03vel.01
filename: nkgrf03vel.01
dimensions: 3
latmin: 53.0
latmax: 73.0
lonmin: 3.0
lonmax: 40.0
data[0].min: -0.96
data[0].max: 1.75
data[0].mean: 0.204704
data[1].min: -1.65
data[1].max: 0.86
data[1].mean: -0.194318
data[2].min: -0.72
data[2].max: 9.97
data[2].mean: 2.34521
dlat: 0.0833333333333
dlon: 0.166666666667
nlat: 241
nlon: 223
datum: ITRF19yy/20yy
mode: KMSGrid
tabletype: 3D
Values in a single grid cell at index 55,12:
$ kmsgrid info Geoids2013\nkgrf03vel.01 --point 55 12 0.649999976158 -0.200000002980 -0.720000028610
Translate
The translate sub-command work similar to gdal_translate in that it translates from one format to another. In fact, behind the scenes, it uses GDAL to convert KMS grids to more common formats. Only a small subset of the GDAL formats available can be used with kmsgrid.
$ kmsgrid translate --help
usage: kmsgrid translate [-h] [--driver DRIVER]
[--creation_options CREATION_OPTIONS]
grid out dimensions [dimensions ...]
positional arguments:
grid Binary grid file.
out Name of output grid file
dimensions List of dimensions in output grid, e.g. "1 2"
optional arguments:
-h, --help show this help message and exit
--driver DRIVER, -d DRIVER
Output format. Currently supports: GTiff, GTX, NTv2
--creation_options CREATION_OPTIONS, -co CREATION_OPTIONS
Additional GDAL creation options. Must be formatted
as "PARAM1=foo PARAM2=bar".
Translate the DVR90 geoid grid to GTX format:
$ kmsgrid translate --driver=GTX dvr90g2013.01 dvr90.gtx 1
Translate the NKG velocity model to two grids, one for the horizontal part in NTv2 format and one for the vertical part in GTX format:
$ kmsgrid translate –driver=NTv2 nkgrf03vel.01 nkgrf03vel_xy.gsb 1 2 $ kmsgrid translate –driver=GTX nkgrf03vel.01 nkgrf03vel_z.gtx 3
API
This is just a simple example of how the API can be used:
from kmsgrid import KMSGrid
# print some useful info
grid = KMSGrid('dvr90g.2013.01')
print('Dimensions of grid: {0}'.format(grid.dims))
print('Datum of grid: {0}'.format(grid.datum))
print('Bounding boix of grid: [{0}, {1}, {2}, {3}'.format(
grid.lonmix, grid.latmin, grid.lonmax, grid.latmax))
# convert grid to a TIFF file
grid.export(filename='dvr90.tif', dimensions=1)
Installing
Clone the repository from GitHub and run the following command in the local repository folder:
$ python setup.py install
Alternatively kmsgrid can be installed from the Python Package Index with pip:
pip install kmsgrid
Release files for kmsgrid 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| kmsgrid-1.1.0-py2.py3-none-any.whl | Python 3, Python 2 | none | any | Details |
Release files / kmsgrid-1.1.0-py2.py3-none-any.whl
| Download URL | kmsgrid-1.1.0-py2.py3-none-any.whl |
|---|---|
| Size | 10.3 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
c1eec7e6ff1a7825b58938e13ed8bdf426d1521485dc1c9401907fdd38ef183e
|
|
BLAKE2b-256 checksum How to use checksums |
9ff819f2cc8c67ca0ada31ea6934c2ecd838e070e0c98c4c15a977f4f83e92dd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |