wolfhece 2.0.3__tar.gz → 2.0.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {wolfhece-2.0.3 → wolfhece-2.0.4}/PKG-INFO +9 -10
- wolfhece-2.0.4/README.md +99 -0
- wolfhece-2.0.4/pyproject.toml +148 -0
- wolfhece-2.0.4/setup.cfg +4 -0
- wolfhece-2.0.4/tests/test_laz_viewer.py +19 -0
- wolfhece-2.0.4/tests/test_link.py +27 -0
- wolfhece-2.0.4/tests/test_myfirsttest.py +19 -0
- wolfhece-2.0.4/tests/test_numpy_reshape.py +63 -0
- wolfhece-2.0.4/tests/test_params.py +474 -0
- wolfhece-2.0.4/tests/test_particlesystem.py +243 -0
- wolfhece-2.0.4/tests/test_scenario_gpu.py +96 -0
- wolfhece-2.0.4/tests/test_shields.py +38 -0
- wolfhece-2.0.4/tests/test_wolfgpu.py +134 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/PyDraw.py +1 -1
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/PyGui.py +1 -1
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/RatingCurve_xml.py +1 -1
- wolfhece-2.0.4/wolfhece/cli.py +57 -0
- wolfhece-2.0.4/wolfhece/fonts/arial.ttf +0 -0
- wolfhece-2.0.4/wolfhece/fonts/helvetica.ttf +0 -0
- wolfhece-2.0.4/wolfhece/fonts/sanserif.ttf +0 -0
- wolfhece-2.0.4/wolfhece/libs/GL/gl.h +1044 -0
- wolfhece-2.0.4/wolfhece/libs/GL/glaux.h +272 -0
- wolfhece-2.0.4/wolfhece/libs/GL/glcorearb.h +3597 -0
- wolfhece-2.0.4/wolfhece/libs/GL/glext.h +11771 -0
- wolfhece-2.0.4/wolfhece/libs/GL/glu.h +255 -0
- wolfhece-2.0.4/wolfhece/libs/GL/glxext.h +926 -0
- wolfhece-2.0.4/wolfhece/libs/GL/wglext.h +840 -0
- wolfhece-2.0.4/wolfhece/libs/WolfOGL.c +28187 -0
- wolfhece-2.0.3/src/wolfhece/locales/en/LC_MESSAGES/base.po → wolfhece-2.0.4/wolfhece/locales/base.pot +19 -11
- wolfhece-2.0.4/wolfhece/models/HECE_169.pptx +0 -0
- wolfhece-2.0.4/wolfhece/models/blue.pal +9 -0
- wolfhece-2.0.4/wolfhece/models/diff16.pal +65 -0
- wolfhece-2.0.4/wolfhece/models/diff3.pal +13 -0
- wolfhece-2.0.4/wolfhece/models/red.pal +9 -0
- wolfhece-2.0.4/wolfhece/models/shields.pal +33 -0
- wolfhece-2.0.4/wolfhece/models/shields_cst.pal +21 -0
- wolfhece-2.0.4/wolfhece/models/waterdepths.pal +33 -0
- wolfhece-2.0.4/wolfhece/ui/wolf_multiselection_collapsiblepane.py +346 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece.egg-info/PKG-INFO +9 -10
- wolfhece-2.0.4/wolfhece.egg-info/SOURCES.txt +246 -0
- wolfhece-2.0.4/wolfhece.egg-info/entry_points.txt +8 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece.egg-info/requires.txt +1 -0
- wolfhece-2.0.3/LICENCE +0 -19
- wolfhece-2.0.3/MANIFEST.in +0 -11
- wolfhece-2.0.3/pyproject.toml +0 -6
- wolfhece-2.0.3/setup.cfg +0 -77
- wolfhece-2.0.3/src/wolfhece/apps/WolfPython.png +0 -0
- wolfhece-2.0.3/src/wolfhece/bernoulli/MQTT/CurlPython.py +0 -50
- wolfhece-2.0.3/src/wolfhece/bernoulli/MQTT/Example_MQTT_Epanet_Ana.py +0 -67
- wolfhece-2.0.3/src/wolfhece/bernoulli/MQTT/Local_File.py +0 -139
- wolfhece-2.0.3/src/wolfhece/bernoulli/MQTT/Local_Test_Thingsboard.py +0 -94
- wolfhece-2.0.3/src/wolfhece/bernoulli/MQTT/NewTestThings.py +0 -90
- wolfhece-2.0.3/src/wolfhece/bernoulli/MQTT/Reader_Thingsboard.py +0 -40
- wolfhece-2.0.3/src/wolfhece/bernoulli/MQTT/Thingsboard.py +0 -76
- wolfhece-2.0.3/src/wolfhece/bernoulli/Pyth_bern.cp37-win_amd64.pyd +0 -0
- wolfhece-2.0.3/src/wolfhece/bernoulli/exit3.png +0 -0
- wolfhece-2.0.3/src/wolfhece/bernoulli/exit7.png +0 -0
- wolfhece-2.0.3/src/wolfhece/bernoulli/exit8.png +0 -0
- wolfhece-2.0.3/src/wolfhece/bernoulli/fib8.cp37-win_amd64.pyd +0 -0
- wolfhece-2.0.3/src/wolfhece/lazviewer/libs/qwindows.dll +0 -0
- wolfhece-2.0.3/src/wolfhece/libs/compile_wcython.py +0 -25
- wolfhece-2.0.3/src/wolfhece/locales/en/LC_MESSAGES/base.mo +0 -0
- wolfhece-2.0.3/src/wolfhece/locales/en-GB/LC_MESSAGES/base.mo +0 -0
- wolfhece-2.0.3/src/wolfhece/locales/en-GB/LC_MESSAGES/base.po +0 -53
- wolfhece-2.0.3/src/wolfhece/locales/fr/LC_MESSAGES/base.mo +0 -0
- wolfhece-2.0.3/src/wolfhece/locales/fr/LC_MESSAGES/base.po +0 -62
- wolfhece-2.0.3/src/wolfhece/locales/fr-FR/LC_MESSAGES/base.mo +0 -0
- wolfhece-2.0.3/src/wolfhece/locales/fr-FR/LC_MESSAGES/base.po +0 -62
- wolfhece-2.0.3/src/wolfhece.egg-info/SOURCES.txt +0 -239
- /wolfhece-2.0.3/README.md → /wolfhece-2.0.4/README-package.md +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/CpGrid.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/GraphNotebook.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/GraphProfile.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/Lidar2002.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/ManageParams.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/PyConfig.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/PyCrosssections.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/PyGuiHydrology.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/PyHydrographs.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/PyPalette.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/PyParams.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/PyPictures.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/PyTranslate.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/PyVertex.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/PyVertexvectors.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/PyWMS.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/RatingCurve.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/RatingCurveData.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/ReadDataDCENN.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/Results2DGPU.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/__init__.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/_add_path.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/apps/ManageParams.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/apps/Optimisation_hydro.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/apps/__init__.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/apps/curvedigitizer.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/apps/isocurrent.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/apps/splashscreen.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/apps/wolf.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/apps/wolf2D.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/apps/wolfBernoulli.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/apps/wolfcompare2Darrays.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/apps/wolfhydro.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/bernoulli/ModelJockgrim.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/bernoulli/NetworkOpenGL.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/bernoulli/ReadNeupotzData.py +0 -0
- {wolfhece-2.0.3/src/wolfhece/bernoulli/MQTT → wolfhece-2.0.4/wolfhece/bernoulli}/__init__.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/bernoulli/opti_results_interactive_plot.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/color_constants.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/debug.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/drawing_obj.py +0 -0
- {wolfhece-2.0.3/src/wolfhece/bernoulli → wolfhece-2.0.4/wolfhece/eva}/__init__.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/eva/bootstrap.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/eva/hydrogramme_mono.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/eva/joint_models.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/eva/mixture_models.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/eva/pyseries.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/flow_SPWMI.py +0 -0
- {wolfhece-2.0.3/src/wolfhece/eva → wolfhece-2.0.4/wolfhece/fonts}/__init__.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/friction_law.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/ftp/__init__.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/ftp/downloader.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/gpuview.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/hydrology/Catchment.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/hydrology/Comparison.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/hydrology/Dumping.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/hydrology/Optimisation.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/hydrology/Outlet.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/hydrology/PostProcessHydrology.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/hydrology/PyWatershed.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/hydrology/RetentionBasin.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/hydrology/SubBasin.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/hydrology/__init__.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/hydrology/constant.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/hydrology/cst_exchanges.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/hydrology/data_treatment.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/hydrology/forcedexchanges.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/hydrology/plot_hydrology.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/hydrology/read.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/hydrology/slope_manager.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/hydrology/wolfMap_treatment.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/hydrometry/__init__.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/hydrometry/kiwis.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/hydrometry/kiwis_gui.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/hydrometry/kiwispie.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/icons/folder_open.png +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/icons/folder_plus.png +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/icons/image.png +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/icons/multiple_files.png +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/icons/python.png +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/icons/simulation.png +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/import_ascfiles.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/ins.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/irm_qdf.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/ismember.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lagrangian/__init__.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lagrangian/advection.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lagrangian/emitter.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lagrangian/example_domain.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lagrangian/particle_system.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lagrangian/particle_system_ui.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lagrangian/particles.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lagrangian/velocity_field.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/__init__.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/_add_path.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/laz_viewer.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/libs/Qt5Core.dll +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/libs/Qt5Gui.dll +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/libs/Qt5Network.dll +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/libs/Qt5Widgets.dll +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/libs/icudt53.dll +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/libs/icuin53.dll +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/libs/icuuc53.dll +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/libs/msvcp120.dll +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/libs/msvcr120.dll +0 -0
- {wolfhece-2.0.3/src/wolfhece/lazviewer/libs/qt_plugins/platforms → wolfhece-2.0.4/wolfhece/lazviewer/libs}/qwindows.dll +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/libs/tbb.dll +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/libs/tbbmalloc.dll +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/libs/vcomp120.dll +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/points/__init__.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/points/expr.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/points/points.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/processing/__init__.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/processing/estimate_normals/__init__.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/processing/estimate_normals/estimate_normals.cp310-win_amd64.pyd +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/processing/estimate_normals/estimate_normals.cp39-win_amd64.pyd +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/vfuncs/__init__.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/vfuncs/vfuncs.cp310-win_amd64.pyd +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/vfuncs/vfuncs.cp39-win_amd64.pyd +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/viewer/__init__.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/viewer/viewer.exe +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/viewer/viewer.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/MSVCP140.dll +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/WolfDll.dll +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/WolfOGL.pyx +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/api-ms-win-crt-heap-l1-1-0.dll +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/api-ms-win-crt-math-l1-1-0.dll +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/api-ms-win-crt-runtime-l1-1-0.dll +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/glu32.dll +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/hdf5.dll +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/hdf5_hl.dll +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/libcurl.dll +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/libifcoremd.dll +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/libifcoremdd.dll +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/libifportmd.dll +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/libiomp5md.dll +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/libmmd.dll +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/libmmdd.dll +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/libpardiso600-WIN-X86-64.dll +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/mkl_core.2.dll +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/mkl_intel_thread.2.dll +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/mkl_rt.2.dll +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/msvcr100.dll +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/netcdf.dll +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/paho-mqtt3cs.dll +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/svml_dispmd.dll +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/vcomp100.dll +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/vcruntime140.dll +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/vcruntime140_1.dll +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/wolfogl.cp310-win_amd64.pyd +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/wolfogl.cp39-win_amd64.pyd +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/wolfpy.cp310-win_amd64.pyd +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/wolfpy.cp39-win_amd64.pyd +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/zlib1.dll +0 -0
- {wolfhece-2.0.3/src/wolfhece/libs → wolfhece-2.0.4/wolfhece/links}/__init__.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/links/link.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/locales/base.po +0 -0
- {wolfhece-2.0.3/src/wolfhece/links → wolfhece-2.0.4/wolfhece/mar}/__init__.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/mar/commontools.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/mar/interface_MAR_WOLF.py +0 -0
- {wolfhece-2.0.3/src/wolfhece/mar → wolfhece-2.0.4/wolfhece/mesh2d}/__init__.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/mesh2d/bc_manager.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/mesh2d/cell_tracker.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/mesh2d/config_manager.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/mesh2d/cst_2D_boundary_conditions.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/mesh2d/wolf2dprev.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/multiprojects.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/pybridges.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/pydike.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/pylogging.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/pypolygons_scen.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/pyshields.py +0 -0
- {wolfhece-2.0.3/src/wolfhece/mesh2d → wolfhece-2.0.4/wolfhece/pythonfortran}/__init__.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/pythonfortran/example_makendarray.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/pythonfortran/example_numpy_memory.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/pythonfortran/tools.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/pyviews.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/pywalous.py +0 -0
- {wolfhece-2.0.3/src/wolfhece/pythonfortran → wolfhece-2.0.4/wolfhece/radar}/__init__.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/radar/wolfradar.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/rain_SPWMI.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/rem/REMMaker.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/rem/RasterViz.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/rem/__init__.py +0 -0
- {wolfhece-2.0.3/src/wolfhece/radar → wolfhece-2.0.4/wolfhece/scenario}/__init__.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/scenario/check_scenario.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/scenario/config_manager.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/scenario/imposebc_void.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/scenario/update_void.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/sounds/son12.wav +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/sounds/son6.wav +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/sounds/sonsw1.wav +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/sounds/sonsw2.wav +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/textpillow.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/tools_mpl.py +0 -0
- {wolfhece-2.0.3/src/wolfhece/scenario → wolfhece-2.0.4/wolfhece/ui}/__init__.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/wolf_array.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/wolf_hist.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/wolf_texture.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/wolf_tiles.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/wolf_vrt.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/wolfresults_2D.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/xyz_file.py +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece.egg-info/dependency_links.txt +0 -0
- {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece.egg-info/top_level.txt +0 -0
@@ -1,17 +1,15 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: wolfhece
|
3
|
-
Version: 2.0.
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
Classifier:
|
10
|
-
Classifier:
|
11
|
-
Classifier: Operating System :: OS Independent
|
3
|
+
Version: 2.0.4
|
4
|
+
Author-email: Stéphane Champailler <stephane.champailler@uliege.be>, Pierre Archambeau <pierre.archambeau@uliege.be>
|
5
|
+
Project-URL: Homepage, https://uee.uliege.be/hece
|
6
|
+
Project-URL: Issues, https://uee.uliege.be/hece
|
7
|
+
Classifier: Programming Language :: Python :: 3.9
|
8
|
+
Classifier: Operating System :: Microsoft :: Windows :: Windows 10
|
9
|
+
Classifier: Operating System :: Microsoft :: Windows :: Windows 11
|
10
|
+
Classifier: Topic :: Scientific/Engineering :: Physics
|
12
11
|
Requires-Python: <3.11,>=3.9
|
13
12
|
Description-Content-Type: text/markdown
|
14
|
-
License-File: LICENCE
|
15
13
|
Requires-Dist: wxpython
|
16
14
|
Requires-Dist: numpy
|
17
15
|
Requires-Dist: pyopengl
|
@@ -49,6 +47,7 @@ Requires-Dist: osmnx
|
|
49
47
|
Requires-Dist: tifffile
|
50
48
|
Requires-Dist: numba
|
51
49
|
Requires-Dist: xmltodict
|
50
|
+
Requires-Dist: opencv-python
|
52
51
|
|
53
52
|
Ce paquet contient l'interface graphique Python du logiciel WOLF (HECE - ULiège) de même que plusieurs outils de traitements topographique, hydraulique et hydrologique.
|
54
53
|
|
wolfhece-2.0.4/README.md
ADDED
@@ -0,0 +1,99 @@
|
|
1
|
+
As someone who develops real applications or one off programs as well as new functionalities in WolfHECE:
|
2
|
+
|
3
|
+
- I fork the *HECEPython* repository with git branch so that my developments don't pollute the main branch
|
4
|
+
- I install Wolf's dependencies with "pip install -r requirements.txt" and "pip install GDAL-3.4.3-cp39-cp39-win_amd64.whl"
|
5
|
+
- I get an issue in GitLab to track my work (I create it or it is given to me)
|
6
|
+
- I can use my local copy of WolfHECE (for *.py files; *lib files via the add_path) (possibly instead of the one installed with pip) with:
|
7
|
+
- import sys
|
8
|
+
- sys.path.insert(0, r"pathfiletolib")
|
9
|
+
|
10
|
+
<h1> Organisation générale - General Structure</h1>
|
11
|
+
<h2>Fr</h2>
|
12
|
+
|
13
|
+
Ce repository Gitlab est destiné à contenir tous les codes Python du HECE.
|
14
|
+
|
15
|
+
Pour le moment, sa structure est la suivante :
|
16
|
+
|
17
|
+
- BlenderCityGML : Blenger plugin pour impoter des bâtiments depuis un fichier 3DML
|
18
|
+
- BlenderGIS : Blender plugin pour traiter des maillages comme des informations SIG (-> petites corrections "nécessaire" par rapport au projet GitHub pour gérer les palettes de couleurs)
|
19
|
+
- data : répertoire de données (utile notamment pour l'import de valeurs hydrométriques depuis le web)
|
20
|
+
- debug : code de développement d'une fonctionnalité spécifique
|
21
|
+
- dike breaching : rupture de digue (cf thèse Vincent Schmitz)
|
22
|
+
- doc : permet d'y stocker des exemples utiles pour la doc
|
23
|
+
- doxygen : pages web résultat du traitement automatique du code via Doxygen
|
24
|
+
- f2py : outil de compilation d'une librairie d'interaction avec le Fortran via Numpy/f2py --> devrait être remplacé par une interaction DLL+CTypes
|
25
|
+
- pypi_config : fichiers de paramétrisation pour le paquet Pypi.org
|
26
|
+
- real_apps : applications plus complètes exploitant le paquet wolfhece
|
27
|
+
- wolfhece : paquet d'outils dans lequel les développements de base doivent se trouver
|
28
|
+
- des sous-répertoires thématiques existent déjà, d'autres peuvent être ajoutés
|
29
|
+
- les outils "communs" sont actuellement dans le sous-répertoire principal
|
30
|
+
|
31
|
+
Vous pouvez créer des répertoires supplémentaires pour des applications particulières.
|
32
|
+
|
33
|
+
La méthode de travail souhaitée est la suivante pour une nouvelle idée/fonctionnalité :
|
34
|
+
- créer un ticket
|
35
|
+
- créer une branche associée
|
36
|
+
- développer
|
37
|
+
- demander la fusion
|
38
|
+
|
39
|
+
<h2>En</h2>
|
40
|
+
|
41
|
+
This Gitlab repository is intended to contain all the HECE Python code.
|
42
|
+
|
43
|
+
For the moment, its structure is as follows:
|
44
|
+
|
45
|
+
- BlenderCityGML: Blender plugin for importing buildings from a 3DML file
|
46
|
+
- BlenderGIS: Blender plugin for processing meshes as GIS data (-> some "necessary" corrections compared to the GitHub project for managing colormap).
|
47
|
+
- data: data directory (useful especially for importing hydrometric values from the web).
|
48
|
+
- debug: development code for a specific functionality.
|
49
|
+
- dike breaching: evolution of a breach in a dike (see Vincent Schmitz's PhD).
|
50
|
+
- doc: used to store useful examples for documentation.
|
51
|
+
- doxygen: web pages resulting from automatic code processing via Doxygen.
|
52
|
+
- f2py: tool for compiling a library for interaction with Fortran using Numpy/f2py --> should be replaced by DLL+CTypes interaction.
|
53
|
+
- pypi_config: parameterization files for the Pypi.org package.
|
54
|
+
- real_apps: more comprehensive applications that utilize the wolfhece package.
|
55
|
+
- wolfhece: tools package
|
56
|
+
- thematic subdirectories already exist, others can be added.
|
57
|
+
- most "common" tools are currently in the main subdirectory.
|
58
|
+
|
59
|
+
You can create additional directories for particular applications.
|
60
|
+
|
61
|
+
The desired way of working is as follows for a new idea/feature:
|
62
|
+
- create an issue
|
63
|
+
- create an associated branch
|
64
|
+
- code
|
65
|
+
- create merge request
|
66
|
+
|
67
|
+
More information on Gitlab (token, ...): https://moodle.hece.uliege.be/mod/wiki/view.php?pageid=298
|
68
|
+
|
69
|
+
<h1>Interaction Fortran-Python - How to Call Fortran from Python </h1>
|
70
|
+
|
71
|
+
<h2>Fr</h2>
|
72
|
+
Il est possible de faire interagir Fortran et Python.
|
73
|
+
|
74
|
+
Une voie possible est f2py (https://numpy.org/doc/stable/f2py/). C'est d'ailleurs exploité pour certaines fonctions dans la librairie "wolfpy.pyd", mais cela offre peu de souplesse.
|
75
|
+
|
76
|
+
Une autre voie est le module "ctypes" qui est dédié à de l'interaction avec le C, ce que peut faire également nativement le Fortran.
|
77
|
+
|
78
|
+
Comme pour toute interaction multilanguages, le débogage devient cependant plus complexe. Il est en effet nécessaire de disposer d'un outil de débogage en Python (-> VSCode) mais également en Fortran (-> VisualStudio). Le Python doit être tout d'abord lancé et il faut récupérer le PID du process (cd fonction "getpid()" du module "os"). Ce PID est nécessaire pour attacher le débuggeur de Visual Studio au process en cours afin de capter l'appel aux fonctions de la DLL (cf https://stackoverflow.com/questions/27154325/how-to-debug-a-windows-dll-used-inside-python). Il faut bien faire attention à ce que les 2 codes utilisent la même DLL, autrement dit soit adapter le répertoire de sortie de VisualStudio, soit utiliser un chemin absolu vers la librairie compilée dans VSCode.
|
79
|
+
|
80
|
+
Dans VSCode, pour que la lecture de la DLL depuis un chemin absolu soit possible, il est utile d'explicitement passer le paramètre "winmode" et de lui imposer une valeur de "0" (source : https://stackoverflow.com/questions/59330863/cant-import-dll-module-in-python).
|
81
|
+
|
82
|
+
Un autre problème peut venir du besoin de mémoire de pile (Memory Stack), mémoire notamment exploitée pour les variables locales des routines/fonctions. Comme c'est le Python qui gère le process de base, le paramétrage du projet VisualStudio ne semble pas fonctionner. Il est donc nécessaire de passer par le module "Threading" de Python, seul moyen semble-t-il, d'augmenter la mémoire de pile d'un thread spécifique (cf https://stackoverflow.com/questions/2067637/how-do-i-increase-the-stack-size-in-python).
|
83
|
+
|
84
|
+
Une autre approche est de forcer l'allocation de toutes les variables dans la Heap et non dans la Stack. Cela peut se faire via les paramètres du projet Fortran dans "Fortran/Optimization/Heap Arrays" en mettant "0". La conséquence sur le temps de calcul n'a cependant jamais été étudiée.
|
85
|
+
|
86
|
+
<h2>En</h2>
|
87
|
+
Interfacing Fortran and Python is possible.
|
88
|
+
|
89
|
+
One viable approach is through the use of f2py (https://numpy.org/doc/stable/f2py/). This technique is actually employed in certain functions within the 'wolfpy.pyd' library, although it provides limited flexibility.
|
90
|
+
|
91
|
+
Another way is the 'ctypes' module, specifically designed for interacting with C, which Fortran can naturally interface with as well.
|
92
|
+
|
93
|
+
As is customary in multilingual interaction scenarios, debugging becomes significantly more intricate. It is essential to have debugging tools available for both Python (e.g., VSCode) and Fortran (e.g., Visual Studio). Initially, Python must be launched, and the Process ID (PID) of the running instance must be retrieved (accomplished using the 'getpid()' function from the 'os' module). This PID is necessary for attaching the Visual Studio debugger to the running process to capture calls to functions within the DLL (see https://stackoverflow.com/questions/27154325/how-to-debug-a-windows-dll-used-inside-python). Ensuring that both codes utilize the same DLL is crucial, either by adjusting the Visual Studio output directory or specifying an absolute path to the compiled library within VSCode.
|
94
|
+
|
95
|
+
In VSCode, to allow for DLL access from an absolute path, it proves advantageous to explicitly set the 'winmode' parameter and set its value to '0' (source: https://stackoverflow.com/questions/59330863/cant-import-dll-module-in-python).
|
96
|
+
|
97
|
+
Another potential complication may stem from the necessity for stack memory, typically employed for local variables within routines/functions. Since Python governs the primary process, configuring the Visual Studio project settings may prove ineffective. Therefore, employing Python's 'Threading' module appears to be the sole method of augmenting stack memory for a specific thread (refer to https://stackoverflow.com/questions/2067637/how-do-i-increase-the-stack-size-in-python).
|
98
|
+
|
99
|
+
Alternatively, one may opt to force the allocation of all variables in the Heap rather than the Stack. This can be achieved through the Fortran project settings under 'Fortran/Optimization/Heap Arrays' by setting it to '0'. However, it is worth noting that the impact on computation time resulting from this change has not been extensively studied.
|
@@ -0,0 +1,148 @@
|
|
1
|
+
# Build the release with `python -m build`
|
2
|
+
# Test with: pip install --force-reinstall --no-deps dist\wolfgpu-2.0.xx-py3-none-any.whl
|
3
|
+
# This will install a script called wolf
|
4
|
+
# Upload to Pypi with python -m twine upload --repository pypi dist/wolfgpu-2.0.xx-py3-none-any.whl
|
5
|
+
# __token__
|
6
|
+
# pypi-AgEIcHlwaS5vcmcCJDM3MDAyYjBlLWUwZDQtNDg1Yy1hM2E3LTljNGU0NzNkOGM0NAACEFsxLFsid29sZmhlY2UiXV0AAixbMixbImNlMDg1NDZjLTk0NjEtNGQ0OS1iMDY2LWNlMjExNmQyNTM1OCJdXQAABiCUZc7TVTde5cz6ONY759JZRZH75ooavff6EFGWtESIig
|
7
|
+
# pypi-AgEIcHlwaS5vcmcCJGY2YTkwMTY2LWU3Y2MtNGU1OS1hODc4LTgxYzJjZmM4NjIzYgACEFsxLFsid29sZmhlY2UiXV0AAixbMixbImNlMDg1NDZjLTk0NjEtNGQ0OS1iMDY2LWNlMjExNmQyNTM1OCJdXQAABiBLxP4zjGXvSNwtNkg_xVjnA-86zSK_-wImRB9_ELAYMw#
|
8
|
+
#
|
9
|
+
# Upload to Gitlab with python -m twine upload --repository gitlab \dist\*
|
10
|
+
#
|
11
|
+
# update version : python update_cfg.py
|
12
|
+
|
13
|
+
[build-system]
|
14
|
+
requires = [
|
15
|
+
"setuptools>=61.0",
|
16
|
+
"wheel"
|
17
|
+
]
|
18
|
+
build-backend = "setuptools.build_meta"
|
19
|
+
|
20
|
+
[project]
|
21
|
+
name = "wolfhece"
|
22
|
+
version = "2.0.4"
|
23
|
+
readme = "README-package.md"
|
24
|
+
authors = [
|
25
|
+
{ name="Stéphane Champailler", email="stephane.champailler@uliege.be" },
|
26
|
+
{ name="Pierre Archambeau", email="pierre.archambeau@uliege.be" },
|
27
|
+
]
|
28
|
+
requires-python = ">=3.9,<3.11"
|
29
|
+
classifiers = [
|
30
|
+
"Programming Language :: Python :: 3.9",
|
31
|
+
"Operating System :: Microsoft :: Windows :: Windows 10",
|
32
|
+
"Operating System :: Microsoft :: Windows :: Windows 11",
|
33
|
+
# "Environment :: CPU",
|
34
|
+
"Topic :: Scientific/Engineering :: Physics"
|
35
|
+
]
|
36
|
+
dependencies = [
|
37
|
+
'wxpython',
|
38
|
+
'numpy',
|
39
|
+
'pyopengl',
|
40
|
+
'pandas',
|
41
|
+
'geopandas',
|
42
|
+
'scipy',
|
43
|
+
'owslib',
|
44
|
+
'pillow',
|
45
|
+
'cython',
|
46
|
+
'pyproj',
|
47
|
+
'dbfread',
|
48
|
+
'graphviz',
|
49
|
+
'owslib',
|
50
|
+
'beautifulsoup4',
|
51
|
+
'requests',
|
52
|
+
'notebook',
|
53
|
+
'matplotlib',
|
54
|
+
'mkl',
|
55
|
+
'python-gettext',
|
56
|
+
'shapely',
|
57
|
+
'openpyxl',
|
58
|
+
'xlrd',
|
59
|
+
'openkmi',
|
60
|
+
'lxml',
|
61
|
+
'laspy',
|
62
|
+
'laszip',
|
63
|
+
'sympy',
|
64
|
+
'python-pptx',
|
65
|
+
'python-docx',
|
66
|
+
'pygltflib',
|
67
|
+
'ezdxf',
|
68
|
+
'pyvista',
|
69
|
+
'tqdm',
|
70
|
+
'osmnx',
|
71
|
+
'tifffile',
|
72
|
+
'numba',
|
73
|
+
'xmltodict',
|
74
|
+
'opencv-python' ]
|
75
|
+
|
76
|
+
|
77
|
+
[project.urls]
|
78
|
+
Homepage = "https://uee.uliege.be/hece"
|
79
|
+
Issues = "https://uee.uliege.be/hece"
|
80
|
+
|
81
|
+
[tool.setuptools]
|
82
|
+
include-package-data = false
|
83
|
+
|
84
|
+
|
85
|
+
[project.gui-scripts]
|
86
|
+
wolf = "wolfhece.cli:wolf"
|
87
|
+
wolfoptimhydro = "wolfhece.cli:optihydro"
|
88
|
+
wolfhydro = "wolfhece.cli:hydro"
|
89
|
+
wolf2d = "wolfhece.cli:wolf2d"
|
90
|
+
wolfdigitizer = "wolfhece.cli:digitizer"
|
91
|
+
wolfparam = "wolfhece.cli:params"
|
92
|
+
wolfcompare = "wolfhece.cli:compare"
|
93
|
+
|
94
|
+
[tool.setuptools.packages.find]
|
95
|
+
exclude = ["wolfhece.hydrometry_hece"]
|
96
|
+
|
97
|
+
include = [
|
98
|
+
"wolfhece",
|
99
|
+
"wolfhece.apps",
|
100
|
+
"wolfhece.bernoulli",
|
101
|
+
"wolfhece.eva",
|
102
|
+
"wolfhece.fonts",
|
103
|
+
"wolfhece.ftp",
|
104
|
+
"wolfhece.hydrology",
|
105
|
+
"wolfhece.hydrometry",
|
106
|
+
"wolfhece.icons",
|
107
|
+
"wolfhece.lagrangian",
|
108
|
+
"wolfhece.lazviewer",
|
109
|
+
"wolfhece.lazviewer.points",
|
110
|
+
"wolfhece.lazviewer.processing",
|
111
|
+
"wolfhece.lazviewer.processing.estimate_normals",
|
112
|
+
"wolfhece.lazviewer.vfuncs",
|
113
|
+
"wolfhece.lazviewer.viewer",
|
114
|
+
"wolfhece.libs/*",
|
115
|
+
"wolfhece.links",
|
116
|
+
"wolfhece.locales",
|
117
|
+
"wolfhece.mar",
|
118
|
+
"wolfhece.mesh2d",
|
119
|
+
"wolfhece.models",
|
120
|
+
"wolfhece.pythonfortran",
|
121
|
+
"wolfhece.radar",
|
122
|
+
"wolfhece.rem",
|
123
|
+
"wolfhece.scenario",
|
124
|
+
"wolfhece.sounds",
|
125
|
+
"wolfhece.ui"
|
126
|
+
]
|
127
|
+
|
128
|
+
[tool.setuptools.package-data]
|
129
|
+
# For package wolfhece, you have to include
|
130
|
+
wolfhece = [
|
131
|
+
"libs/*.dll",
|
132
|
+
"libs/*.c",
|
133
|
+
"libs/*.pyx",
|
134
|
+
"libs/GL/*.h",
|
135
|
+
"libs/*.pyd",
|
136
|
+
"locales/*.po*",
|
137
|
+
"locales/*/*.po",
|
138
|
+
"locales/*/*.mo",
|
139
|
+
"models/*.*",
|
140
|
+
"sounds/*.wav",
|
141
|
+
"fonts/*.ttf",
|
142
|
+
"icons/*.png",
|
143
|
+
"lazviewer/qt_plugins/*.dll",
|
144
|
+
"lazviewer/libs/*.dll",
|
145
|
+
"lazviewer/processing/estimate_normals/*.pyd",
|
146
|
+
"lazviewer/vfuncs/*.pyd",
|
147
|
+
"lazviewer/viewer/*.exe"
|
148
|
+
]
|
wolfhece-2.0.4/setup.cfg
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
import _add_path
|
2
|
+
import unittest
|
3
|
+
import tempfile
|
4
|
+
|
5
|
+
from wolfhece.lazviewer import viewer
|
6
|
+
from wolfhece.lazviewer.laz_viewer import myviewer, xyz_laz_grids, Colors_Lazviewer
|
7
|
+
|
8
|
+
class LazViewer(unittest.TestCase):
|
9
|
+
|
10
|
+
def test_viewer_Theux_2023(self):
|
11
|
+
|
12
|
+
mygrids = xyz_laz_grids(r'D:\OneDrive\OneDrive - Universite de Liege\Crues\2021-07 Vesdre\CSC - Convention - ARNE\Data\LAZ_Vesdre\2023\grids')
|
13
|
+
xyz = mygrids.scan([[252500, 252700],[136400,136500]])
|
14
|
+
newview_code = myviewer(xyz,Colors_Lazviewer.CODE_2023)
|
15
|
+
newview = myviewer(xyz,Colors_Lazviewer.ORTHO_2021)
|
16
|
+
|
17
|
+
self.assertTrue(isinstance(newview, viewer), 'Bad type viewer')
|
18
|
+
self.assertTrue(isinstance(newview_code, viewer), 'Bad type viewer')
|
19
|
+
self.assertTrue(xyz.shape==(2220375,4), 'badv shape in xyz')
|
@@ -0,0 +1,27 @@
|
|
1
|
+
import _add_path
|
2
|
+
import unittest
|
3
|
+
import os
|
4
|
+
import sys
|
5
|
+
from pathlib import Path
|
6
|
+
from tempfile import TemporaryDirectory
|
7
|
+
|
8
|
+
from wolfhece.links import link
|
9
|
+
|
10
|
+
class TestLink(unittest.TestCase):
|
11
|
+
|
12
|
+
def test_create_link(self):
|
13
|
+
|
14
|
+
with TemporaryDirectory() as tempdir:
|
15
|
+
directory = os.path.join(tempdir, "directory")
|
16
|
+
os.mkdir(directory)
|
17
|
+
link_path = os.path.join(tempdir, "link")
|
18
|
+
|
19
|
+
# Act
|
20
|
+
link.create_link(directory, link_path)
|
21
|
+
|
22
|
+
# Assert
|
23
|
+
if not sys.platform == "win32":
|
24
|
+
self.assertTrue(os.path.islink(Path(link_path)), 'link not created')
|
25
|
+
else:
|
26
|
+
self.assertTrue(os.path.exists(link_path), 'link not created')
|
27
|
+
self.assertTrue((directory in str(os.readlink(link_path))), 'link not readable')
|
@@ -0,0 +1,19 @@
|
|
1
|
+
import _add_path
|
2
|
+
import unittest
|
3
|
+
|
4
|
+
|
5
|
+
class MyFirstTest(unittest.TestCase):
|
6
|
+
|
7
|
+
def test_helloworld(self):
|
8
|
+
|
9
|
+
a = "Hello World !"
|
10
|
+
|
11
|
+
self.assertEqual(a, 'Hello World !', 'Bad chain with case')
|
12
|
+
self.assertEqual(a.lower(), 'hello world !', 'Bad chain lower case')
|
13
|
+
self.assertEqual(a.upper(), 'HELLO WORLD !', 'Bad chain lower case')
|
14
|
+
|
15
|
+
def firstfunc(a):
|
16
|
+
return a+1
|
17
|
+
|
18
|
+
def test_firstfunc(self):
|
19
|
+
self.assertEqual(MyFirstTest.firstfunc(3), 4, 'Bad result')
|
@@ -0,0 +1,63 @@
|
|
1
|
+
import _add_path
|
2
|
+
import unittest
|
3
|
+
import numpy as np
|
4
|
+
from wolfhece.wolf_array import WolfArray, WOLF_ARRAY_FULL_SINGLE
|
5
|
+
from tempfile import TemporaryDirectory, TemporaryFile
|
6
|
+
from os.path import join
|
7
|
+
|
8
|
+
|
9
|
+
class NumpyTests(unittest.TestCase):
|
10
|
+
|
11
|
+
def test_reshape(self):
|
12
|
+
|
13
|
+
a = np.zeros((4,4))
|
14
|
+
a[0:2,0:2] = 0
|
15
|
+
a[0:2,2:] = 1
|
16
|
+
a[2:,0:2] = 2
|
17
|
+
a[2:,2:] = 3
|
18
|
+
|
19
|
+
b = np.mean(a.reshape((2,2,2,2)), axis=(1,3))
|
20
|
+
# b = a.reshape((2,2,2,2))
|
21
|
+
c = np.asarray([[0,1],[2,3]])
|
22
|
+
d=np.sum(np.abs(b-c))
|
23
|
+
|
24
|
+
self.assertEqual(d, 0., 'bad reshape and mean')
|
25
|
+
|
26
|
+
|
27
|
+
def test_wolf2Numpy(self):
|
28
|
+
|
29
|
+
# Create wolfarray
|
30
|
+
w_array = WolfArray()
|
31
|
+
# set sizes/shape
|
32
|
+
w_array.nbx, w_array.nby = 100,200
|
33
|
+
# allocate memory space
|
34
|
+
w_array.allocate_ressources()
|
35
|
+
|
36
|
+
# fill-in with data
|
37
|
+
w_array.array.data[:,:] = np.arange(100*200, dtype=np.float32).reshape(w_array.array.shape, order='F')
|
38
|
+
|
39
|
+
with TemporaryDirectory() as tmpdir:
|
40
|
+
# write on disk
|
41
|
+
w_array.write_all(join(tmpdir, 'test.bin'))
|
42
|
+
# read in another array
|
43
|
+
r_array = WolfArray(join(tmpdir, 'test.bin'))
|
44
|
+
|
45
|
+
# binary read
|
46
|
+
with open(join(tmpdir, 'test.bin'), 'rb') as f:
|
47
|
+
# numpy from buffer
|
48
|
+
locarray = np.frombuffer(f.read(100*200 * 4), dtype=np.float32)
|
49
|
+
|
50
|
+
# copy buffer in numpy array alive after "with open"
|
51
|
+
np_array_F = np.asarray(locarray.copy(), dtype=np.float32)
|
52
|
+
# using order "F", data is aligned/ordered as Fortran (first indice most rapid)
|
53
|
+
np_array_F = np_array_F.reshape(100, 200, order='F')
|
54
|
+
|
55
|
+
# using order "C", data is aligned/ordered as C (last indice most rapid)
|
56
|
+
# the array is 'transposed' --> like numpy default definition
|
57
|
+
np_array_C = np.asarray(locarray.copy(), dtype=np.float32)
|
58
|
+
np_array_C = np_array_C.reshape(200, 100, order='C')
|
59
|
+
|
60
|
+
self.assertEqual(np.all(w_array.array-r_array.array == 0.), True)
|
61
|
+
self.assertEqual(np.all(w_array.array-np_array_F == 0.), True)
|
62
|
+
self.assertEqual(np.all(w_array.array-np_array_C.T == 0.), True)
|
63
|
+
self.assertEqual(np.all(w_array.array.T-np_array_C == 0.), True)
|