ras2cng.geometry¶
ras2cng.geometry
¶
Geometry export functions for ras2cng.
Supports: - HEC-RAS geometry HDF: .g??.hdf (mesh, BCs, structures, XS, centerlines) - HEC-RAS text geometry: .g?? (XS cut lines, centerlines, storage areas)
export_geometry_layers(geom_input, output, layer=None)
¶
Export HEC-RAS geometry layers to GeoParquet.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
geom_input
|
Path
|
Path to .g?? or .g??.hdf |
required |
output
|
Path
|
Output GeoParquet path |
required |
layer
|
Optional[str]
|
Layer name (mesh_cells, cross_sections, centerlines, bc_lines, breaklines, refinement_regions, reference_lines, reference_points, structures, mesh_areas, storage_areas). None = auto-select best. |
None
|
Source code in ras2cng/geometry.py
export_hdf_geometry(hdf_path, output, layer=None)
¶
Export geometry from a HDF geometry file (*.g??.hdf).
When layer is None, prefers mesh_cells then falls back to first available.
Source code in ras2cng/geometry.py
export_all_hdf_layers(hdf_path, output_dir, skip_empty=True)
¶
Export all available geometry layers from a single HDF file.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
hdf_path
|
Path
|
Path to *.g??.hdf geometry file |
required |
output_dir
|
Path
|
Directory to write individual layer parquet files |
required |
skip_empty
|
bool
|
If True, silently skip layers that return no data |
True
|
Returns:
| Type | Description |
|---|---|
dict[str, Path]
|
Dict of {layer_name: parquet_path} for successfully written layers |
Source code in ras2cng/geometry.py
export_text_geometry(geom_path, output, layer=None)
¶
Export geometry from a plain text geometry file (*.g??).
Layers available from text files: cross_sections, centerlines, storage_areas
Source code in ras2cng/geometry.py
export_all_text_layers(geom_path, output_dir)
¶
Export all available geometry layers from a text geometry file.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
geom_path
|
Path
|
Path to *.g?? text geometry file |
required |
output_dir
|
Path
|
Directory to write individual layer parquet files |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Path]
|
Dict of {layer_name: parquet_path} for successfully written layers |
Source code in ras2cng/geometry.py
merge_all_layers(hdf_path=None, text_path=None, *, sort=True)
¶
Extract and merge all geometry layers into a single GeoDataFrame.
HDF layers use their base names (e.g. mesh_cells). Text layers get
a _text suffix (e.g. cross_sections_text). All layers are
distinguished by a layer column.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
hdf_path
|
Optional[Path]
|
Path to |
None
|
text_path
|
Optional[Path]
|
Path to |
None
|
sort
|
bool
|
If True, apply Hilbert spatial sort within each layer |
True
|
Returns:
| Type | Description |
|---|---|
Optional[GeoDataFrame]
|
A merged GeoDataFrame with |