Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

mesh2d_delete doesn't delete mesh2d_node_z

Aperta
#275 4 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
62/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Tranquilla
Stack tecnologico
python
Ambito
backend

Direzione di ricerca

Inizia eseguendo la riproduzione in clip_mesh.py con la mesh NetCDF fornita e analizza la gestione da parte di mesh2d_delete di mesh2d_node_x, mesh2d_node_y e mesh2d_node_z. Il lavoro è completato quando node_z ha la stessa lunghezza di node_x e node_y dopo il ritaglio, con un test di regressione che copra l'opzione di eliminazione segnalata.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

bug

Describe the bug
When clipping a netcdf over a geometrylist the mesh2d_node_x, mesh2d_node_y are clipped, but mesh2d_node_z isn't

To Reproduce
Steps to reproduce the behavior:

  1. Download the mesh and reproduce-script we've created: https://we.tl/t-XHuUUF83RC
  2. Run the clip_mesh.py executing the code below (we use hydrolib-core to read the nc-file):
from pathlib import Path
import numpy as np
from meshkernel import GeometryList
import meshkernel as mk
from hydrolib.core.dflowfm.net.models import Network
 
nc_path = Path(__file__).parent / "ovd-j98_6-v1a_net.nc"

# read mesh using hydrolib-core

network = Network.from_file(Path(nc_path))
mesh2d = network._mesh2d

# show node x/y/z
print("before")
print(f"x: {mesh2d.mesh2d_node_x.shape}")
print(f"y: {mesh2d.mesh2d_node_y.shape}")
print(f"z: {mesh2d.mesh2d_node_z.shape}")

# define gometrylist
x_coordinates = np.array(
    [219032.36821211,
     219415.05146748,
     236135.84080332,
     257422.06085974,
     257935.46607711,
     221483.69564399,
     219032.36821211],
     dtype=np.double)

y_coordinates = np.array(
    [502669.83347292,
     504635.40577414,
     520870.43426807,
     522115.73282761,
     511205.87195854,
     495803.7154375,
     502669.83347292],
     dtype=np.double)

geometrylist = GeometryList(x_coordinates, y_coordinates)

# clip mesh
mesh2d.meshkernel.mesh2d_delete(
    geometry_list=geometrylist,
    delete_option=mk.DeleteMeshOption.INSIDE_NOT_INTERSECTED,
    invert_deletion=True,
)


# show_result
print("after")
print(f"x: {mesh2d.mesh2d_node_x.shape}")
print(f"y: {mesh2d.mesh2d_node_y.shape}")
print(f"z: {mesh2d.mesh2d_node_z.shape}")
  1. Note the size of mesh_node2d_x, mesh_node2d_y and mesh_node2d_z before and after mesh2d_delete:
    image

Expected behavior
A length of mesh2d_node_z of 226161 as are mesh2d_node_x and mesh2d_node_y.

Screenshots
We do think deletion of x and y is as expected. Running network.plot() after executing the script above gives a plausible result:
image

Version info (please complete the following information):

  • OS: Windows
  • Versions:
    • Python: 3.8.19
    • hydrolib.core: 0.7.0
    • meshkernel: 4.1.0
Lingua principale
Python
Stelle
28
Fork
5
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di Deltares/MeshKernelPy

Tutte le issue di Deltares/MeshKernelPy

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.