cross_sections.CrossSectionCollection
self, cross_sections=None) cross_sections.CrossSectionCollection(
A collection of CrossSection objects.
The collection is a dict-like object where the keys are tuples of location ID, chainage and topo ID.
Parameters
Name | Type | Description | Default |
---|---|---|---|
cross_sections | Collection[CrossSection] | CrossSectionData | Path | str | If Collection[CrossSection], the collection will be initialized from the list of CrossSection objects. If CrossSectionData, the collection will be initialized from a .NET DHI.Mike1D.CrossSectionModule.CrossSectionData object. If Path or str, the collection will be initialized from an xns11 file. | None |
Examples
Create a collection from a list of cross sections
>>> from mikeio1d.cross_sections import CrossSectionCollection, CrossSection
>>> x = [0, 1, 2, 3, 4, 5]
>>> z = [0, 1, 2, 3, 4, 5]
>>> xs1 = CrossSection.from_xz(x, z, location_id="loc1", chainage=100, topo_id="topo1")
>>> xs2 = CrossSection.from_xz(x, z, location_id="loc2", chainage=200, topo_id="topo1")
>>> csc = CrossSectionCollection([xs1, xs2])
Access a cross section with indexing, or explicitly with sel()
>>> csc['loc1', '100.000', 'topo1']
>>> csc.sel(location_id='loc1', chainage=100, topo_id='topo1')
Create a collection from an xns11 file
>>> csc = CrossSectionCollection("cross_sections.xns11")
Save the collection to an xns11 file
>>> csc.to_xns11("cross_sections.xns11")
Attributes
Name | Description |
---|---|
chainages | Unique chainages in the collection (as string with 3 decimals). |
cross_section_data | The DHI.Mike1D.CrossSectionModule.CrossSectionData object. |
data | The DHI.Mike1D.CrossSectionModule.CrossSectionData object. |
interpolation_type | Defines how an interpolated cross section is interpolated. |
location_ids | Unique location IDs in the collection. |
topo_ids | Unique topo IDs in the collection. |
Methods
Name | Description |
---|---|
add | Add a cross section to the collection. |
plot | Plot all cross sections in the collection. |
remove | Remove a cross section from the collection. |
sel | Select cross sections from the collection. |
to_dataframe | Convert the collection to a DataFrame. |
to_geopandas | Convert the collection to a GeoDataFrame. |
to_xns11 | Save the collection to an Xns11 file. |
add
cross_sections.CrossSectionCollection.add(cross_section)
Add a cross section to the collection.
Parameters
Name | Type | Description | Default |
---|---|---|---|
cross_section | CrossSection | Cross section to add. | required |
plot
*args, **kwargs) cross_sections.CrossSectionCollection.plot(
Plot all cross sections in the collection.
remove
cross_sections.CrossSectionCollection.remove(cross_section)
Remove a cross section from the collection.
Parameters
Name | Type | Description | Default |
---|---|---|---|
cross_section | CrossSection | Cross section to remove. | required |
sel
cross_sections.CrossSectionCollection.sel(=...,
location_id=...,
chainage=...,
topo_id )
Select cross sections from the collection.
Parameters
Name | Type | Description | Default |
---|---|---|---|
location_id | str | Location ID of the cross section. | ... |
chainage | str | float | Chainage of the cross section. | ... |
topo_id | str | Topo ID of the cross section. | ... |
Returns
Name | Type | Description |
---|---|---|
CrossSection or list[CrossSection] | Providing all arguments will return a CrossSection. Provinding partial arguments will always return a list, even if it only includes one CrossSection. |
to_dataframe
cross_sections.CrossSectionCollection.to_dataframe()
Convert the collection to a DataFrame.
to_geopandas
='sections') cross_sections.CrossSectionCollection.to_geopandas(mode
Convert the collection to a GeoDataFrame.
Parameters
Name | Type | Description | Default |
---|---|---|---|
mode | str | Mode of conversion. Options are “sections” and “markers”. Default is “sections”. | 'sections' |
Returns
Name | Type | Description |
---|---|---|
gpd.GeoDataFrame | GeoDataFrame with the cross sections or markers. |
Note:
This method requires the geopandas package to be installed. Cross sections must have defined coordinates.
to_xns11
**kwargs) cross_sections.CrossSectionCollection.to_xns11(file_name,
Save the collection to an Xns11 file.
Parameters
Name | Type | Description | Default |
---|---|---|---|
file_name | str or Path | Path to the file to save. | required |
Examples
>>> csc.to_xns11("cross_sections.xns11")