Skip to content

Geometry Export

File Type Detection

Detection is suffix-based — no file inspection required:

Suffix Pattern Type Parsers Used
*.g01.hdf, *.g02.hdf, ... HDF geometry HdfMesh (mesh cells), HdfXsec (cross sections, centerlines)
*.g01, *.g02, ... Text geometry GeomParser (cross sections, centerlines)

Available Layers

HDF geometry layers (.g##.hdf)

Layer Geometry Source Class
mesh_cells Polygon (Point fallback) HdfMesh
mesh_areas Polygon HdfMesh
cross_sections LineString HdfXsec
centerlines LineString HdfXsec
bc_lines LineString HdfBndry
breaklines LineString HdfBndry
refinement_regions Polygon HdfBndry
reference_lines LineString HdfBndry
reference_points Point HdfBndry
structures LineString HdfStruc

Text geometry layers (.g##)

Layer Geometry Source Class
cross_sections LineString GeomParser
centerlines LineString GeomParser
storage_areas Polygon GeomStorage

See Geometry Layers Reference for full details on each layer.

Default Behavior

When --layer is not specified: - HDF geometry → exports mesh_cells (most useful layer for flood depth visualization) - Text geometry → exports cross_sections

CLI Usage

# HDF geometry — specific layers
ras2cng geometry model.g01.hdf mesh_cells.parquet --layer mesh_cells
ras2cng geometry model.g01.hdf bc_lines.parquet --layer bc_lines
ras2cng geometry model.g01.hdf structures.parquet --layer structures
ras2cng geometry model.g01.hdf cross_sections.parquet --layer cross_sections

# Text geometry
ras2cng geometry model.g01 cross_sections.parquet --layer cross_sections
ras2cng geometry model.g01 storage_areas.parquet --layer storage_areas

For full-project export with all layers consolidated into one file per geometry source, use ras2cng archive instead. See Project Archive.

Python API

from ras2cng.geometry import export_geometry_layers
from pathlib import Path

# Export specific layer
export_geometry_layers(
    Path("model.g01.hdf"),
    Path("mesh_cells.parquet"),
    layer="mesh_cells",
)

# Export all layers in a loop
for layer in ["mesh_cells", "cross_sections", "centerlines"]:
    try:
        export_geometry_layers(
            Path("model.g01.hdf"),
            Path(f"{layer}.parquet"),
            layer=layer,
        )
    except (FileNotFoundError, ValueError) as e:
        print(f"Skipping {layer}: {e}")

Fallback Behavior

For mesh_cells, ras-commander first attempts to extract polygon cell geometries. If the HDF file does not contain cell polygon data (e.g., older HEC-RAS versions), it falls back to cell centroid points. The output GeoParquet will have Point geometry instead of Polygon geometry in this case.

Output Schema

All geometry exports produce a GeoParquet with: - geometry column (WKB-encoded, readable by geopandas, DuckDB spatial, QGIS) - ras-commander attribute columns in snake_case - CRS preserved from the HEC-RAS model