Hydrographic sounding selection is the process of generalizing high-resolution bathymetry data to produce a shoal-biased and dense, yet manageable, subset of soundings without label over-plot that can support nautical chart compilation or bathymetric modelling. This algorithm improves over existing methods by generalizing bathymetry using the physical dimensions of symbolized depth values at scale.
Dyer, N., Kastrisios, C., & De Floriani, L. (2021). Label-Based Generalization of Bathymetry Data for Hydrographic Sounding Selection. Cartography and Geographic Information Science. DOI: https://doi.org/10.1080/15230406.2021.2014974.
Note: Several enhancments have been implemented to eliminate remaining functionality constraint violations.
Once in the root of the repository, enter into the command line:
python setup.py install # installs to current Python environment (including required libraries)
You should then be able to execute the program from the command line as such:
sounding_selection -i path\to\data\Bathymetry_xyz.txt -s 25000 -m path\to\data\Bathymetry_Boundary.txt
Example data file formats can be found in the data
directory.
-i <inputfile> -s <scale> -m <m_qual> -x <horizontal_spacing> -y <vertical_spacing>
-i
Input Soundings File | Required | X,Y,Z Text File Format
-s
Scale | Required | Integer
-m
Survey Boundary (M_QUAL) Polygon | Optional | Polygon WKT in Text File Format
-x
Horizontal Spacing Between Labels | Optional | Float
-y
Vertical Spacing Between Labels | Optional | Float
Notes:
When a survey polygon is provided, the triangulation performed for validation (see reference paper) is constrained to the polygon. If it is not provided, the triangulation is Delaunay.
A default horizontal/vertical spacing of 0.75 mm to the scale is used unless a different value is provided.
An output log file is also created during execution.- Triangle (https://rufat.be/triangle/)
- Python wrapper of Triangle (http://www.cs.cmu.edu/~quake/triangle.html)
- Shapely >= 1.8.0
- Numpy >= 1.21.5
- 3.6 <= Python < 3.9