
Vyperdatum
Vyperdatum [definition]
Installation
Vyperdatum requires GDAL
which can be installed from the conda's conda-forge channel. Below, we first create a conda environment, install GDAL
and Vperdatum.
conda create -n vd python=3.11
conda activate vd
conda install -c conda-forge proj=9.4 gdal=3.8.4 python-pdal
pip install vyperdatum
Before running vyperdatum, you need to download NOAA's datum files and the updated proj.db
. Once downloaded, create a persistent environment variable VYPER_GRIDS
to hold the path to directory where the downloaded grids and proj.db
are located.
Usage
Vyperdatum offers a Transformer
class to handle the transformation of point and raster data. The Transformer
class applies transformation from crs_from
to crs_to
coordinate reference system. By default the transformation steps will be determined automatically:
from vyperdatum.transformer import Transformer
crs_from = "EPSG:6346"
crs_to = "EPSG:6346+NOAA:98"
tf = Transformer(crs_from=crs_from,
crs_to=crs_to,
)
Alternatively, you may manually prescribe the transformation steps:
from vyperdatum.transformer import Transformer
crs_from = "EPSG:6346"
crs_to = "EPSG:6346+NOAA:98"
steps = [{"crs_from": "EPSG:6346", "crs_to": "EPSG:6318", "v_shift": False},
{"crs_from": "EPSG:6319", "crs_to": "EPSG:6318+NOAA:98", "v_shift": True},
{"crs_from": "EPSG:6318", "crs_to": "EPSG:6346", "v_shift": False}
]
tf = Transformer(crs_from=crs_from,
crs_to=crs_to,
steps=steps
)
Once an instance of the Transformer
class is created, the transform()
method can be called. Vyperdatum supports all GDAL-supported drivers, variable resolution BAG, LAZ and NPZ point-cloud files.
transform
tf.transform(input_file=<PATH_TO_INPUT_RASTER_FILE>,
output_file=<PATH_TO_OUTPUT_RASTER_FILE>
)
You may also, directly call the file-specific transform methods instead of the generic Transformer.transform()
method:
Click to see pseudo-code examples
x, y, z = 278881.198, 2719890.433, 0
xt, yt, zt = tf.transform_points(x, y, z, always_xy=True, allow_ballpark=False)
tf.transform_raster(input_file=<PATH_TO_INPUT_RASTER_FILE>,
output_file=<PATH_TO_OUTPUT_RASTER_FILE>
)
tf.transform_vrbag(input_file=<PATH_TO_INPUT_VRBAG_FILE>,
output_file=<PATH_TO_OUTPUT_VRBAG_FILE>
)
tf.transform_laz(input_file=<PATH_TO_INPUT_LAZ_FILE>,
output_file=<PATH_TO_OUTPUT_LAZ_FILE>
)
tf.transform_npz(input_file=<PATH_TO_INPUT_NPZ_FILE>,
output_file=<PATH_TO_OUTPUT_NPZ_FILE>
)
Documentation
For a quick start, more detailed descriptions or search through the API, see Vyperdatums's documentation at: https://vyperdatum.readthedocs.io.