Skip to content

Coerce geometries to 2D#2111

Merged
visr merged 2 commits into
mainfrom
force_2d
Mar 3, 2025
Merged

Coerce geometries to 2D#2111
visr merged 2 commits into
mainfrom
force_2d

Conversation

@visr
Copy link
Copy Markdown
Member

@visr visr commented Feb 27, 2025

Doesn't seem to be working yet. Handing over to @evetion.
Fixes #2103.

import ribasim

m1 = ribasim.Model.read("a/ribasim.toml")
m1.discrete_control.node.df.geometry = m1.discrete_control.node.df.geometry.force_3d()
m1.write("b/ribasim.toml")
m2 = ribasim.Model.read("b/ribasim.toml")
m2.discrete_control.node.df  # still 3D :(

https://pandera.readthedocs.io/en/stable/data_format_conversion.html

edit: We want parse as documented here.

@visr visr marked this pull request as draft February 27, 2025 14:21
@evetion evetion marked this pull request as ready for review February 27, 2025 15:27
Copy link
Copy Markdown
Member Author

@visr visr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice, thanks. Would approve if I could ;)

@evetion
Copy link
Copy Markdown
Member

evetion commented Feb 27, 2025

Approved ;) But please check manually if it works on a problematic model before merging.

@visr
Copy link
Copy Markdown
Member Author

visr commented Feb 28, 2025

Hmm this doesn't seem to work on reading a model with 3D geometries, like in the example above.

@visr visr marked this pull request as draft February 28, 2025 09:42
@evetion
Copy link
Copy Markdown
Member

evetion commented Feb 28, 2025

Can you send me your 3d model?

@visr
Copy link
Copy Markdown
Member Author

visr commented Feb 28, 2025

I'm not sure which one is 3D and which one isn't, but doesn't my snippet reproduce for you? This works on any generated testmodel.

@evetion
Copy link
Copy Markdown
Member

evetion commented Feb 28, 2025

I'm not sure which one is 3D and which one isn't, but doesn't my snippet reproduce for you? This works on any generated testmodel.

Can't reproduce:

In [8]: m1.discrete_control.node
Out[8]:
Node
               node_type name  subnetwork_id  source_priority  cyclic_time          geometry
node_id
5        DiscreteControl                <NA>             <NA>        False   POINT Z (1 1 0)
6        DiscreteControl                <NA>             <NA>        False  POINT Z (2 -1 0)

In [9]: m1.write("b/ribasim.toml")
Out[9]: PosixPath('b/ribasim.toml')

In [10]: m2 = ribasim.Model.read("b/ribasim.toml")

In [11]: m2.discrete_control.node.df
Out[11]:
               node_type name  subnetwork_id  source_priority  cyclic_time      geometry
node_id
5        DiscreteControl                <NA>             <NA>        False   POINT (1 1)
6        DiscreteControl                <NA>             <NA>        False  POINT (2 -1)

@visr
Copy link
Copy Markdown
Member Author

visr commented Mar 3, 2025

Oh yeah it works for me as well, I think I made a mistake in my snippet...

@visr visr marked this pull request as ready for review March 3, 2025 09:30
@visr visr merged commit 1773acf into main Mar 3, 2025
@visr visr deleted the force_2d branch March 3, 2025 09:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Remove Z coordinates in migration

2 participants