geone 1.2.17__tar.gz → 1.2.18__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.
Files changed (166) hide show
  1. {geone-1.2.17/geone.egg-info → geone-1.2.18}/PKG-INFO +9 -7
  2. {geone-1.2.17 → geone-1.2.18}/README.md +5 -5
  3. {geone-1.2.17 → geone-1.2.18/geone.egg-info}/PKG-INFO +9 -7
  4. {geone-1.2.17 → geone-1.2.18}/src/geone/_version.py +1 -1
  5. {geone-1.2.17 → geone-1.2.18}/src/geone/blockdata.py +2 -0
  6. {geone-1.2.17 → geone-1.2.18}/src/geone/covModel.py +6 -0
  7. {geone-1.2.17 → geone-1.2.18}/src/geone/deesseinterface.py +9 -18
  8. {geone-1.2.17 → geone-1.2.18}/src/geone/img.py +16 -10
  9. {geone-1.2.17 → geone-1.2.18}/src/geone/imgplot.py +4 -1
  10. {geone-1.2.17 → geone-1.2.18}/src/geone/tools.py +50 -9
  11. {geone-1.2.17 → geone-1.2.18}/LICENSE +0 -0
  12. {geone-1.2.17 → geone-1.2.18}/MANIFEST.in +0 -0
  13. {geone-1.2.17 → geone-1.2.18}/geone.egg-info/SOURCES.txt +0 -0
  14. {geone-1.2.17 → geone-1.2.18}/geone.egg-info/dependency_links.txt +0 -0
  15. {geone-1.2.17 → geone-1.2.18}/geone.egg-info/requires.txt +0 -0
  16. {geone-1.2.17 → geone-1.2.18}/geone.egg-info/top_level.txt +0 -0
  17. {geone-1.2.17 → geone-1.2.18}/pyproject.toml +0 -0
  18. {geone-1.2.17 → geone-1.2.18}/setup.cfg +0 -0
  19. {geone-1.2.17 → geone-1.2.18}/setup.py +0 -0
  20. {geone-1.2.17 → geone-1.2.18}/src/geone/__init__.py +0 -0
  21. {geone-1.2.17 → geone-1.2.18}/src/geone/customcolors.py +0 -0
  22. {geone-1.2.17 → geone-1.2.18}/src/geone/geosclassicinterface.py +0 -0
  23. {geone-1.2.17 → geone-1.2.18}/src/geone/grf.py +0 -0
  24. {geone-1.2.17 → geone-1.2.18}/src/geone/imgplot3d.py +0 -0
  25. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/linux_old_py310/__init__.py +0 -0
  26. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/linux_old_py310/_deesse.so +0 -0
  27. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/linux_old_py310/deesse.py +0 -0
  28. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/linux_old_py311/__init__.py +0 -0
  29. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/linux_old_py311/_deesse.so +0 -0
  30. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/linux_old_py311/deesse.py +0 -0
  31. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/linux_old_py312/__init__.py +0 -0
  32. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/linux_old_py312/_deesse.so +0 -0
  33. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/linux_old_py312/deesse.py +0 -0
  34. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/linux_old_py39/__init__.py +0 -0
  35. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/linux_old_py39/_deesse.so +0 -0
  36. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/linux_old_py39/deesse.py +0 -0
  37. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/linux_py310/__init__.py +0 -0
  38. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/linux_py310/_deesse.so +0 -0
  39. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/linux_py310/deesse.py +0 -0
  40. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/linux_py311/__init__.py +0 -0
  41. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/linux_py311/_deesse.so +0 -0
  42. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/linux_py311/deesse.py +0 -0
  43. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/linux_py312/__init__.py +0 -0
  44. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/linux_py312/_deesse.so +0 -0
  45. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/linux_py312/deesse.py +0 -0
  46. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/linux_py39/__init__.py +0 -0
  47. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/linux_py39/_deesse.so +0 -0
  48. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/linux_py39/deesse.py +0 -0
  49. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/mac_arm64_py310/__init__.py +0 -0
  50. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/mac_arm64_py310/_deesse.so +0 -0
  51. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/mac_arm64_py310/deesse.py +0 -0
  52. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/mac_arm64_py311/__init__.py +0 -0
  53. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/mac_arm64_py311/_deesse.so +0 -0
  54. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/mac_arm64_py311/deesse.py +0 -0
  55. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/mac_arm64_py312/__init__.py +0 -0
  56. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/mac_arm64_py312/_deesse.so +0 -0
  57. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/mac_arm64_py312/deesse.py +0 -0
  58. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/mac_arm64_py39/__init__.py +0 -0
  59. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/mac_arm64_py39/_deesse.so +0 -0
  60. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/mac_arm64_py39/deesse.py +0 -0
  61. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/mac_x86_64_py310/__init__.py +0 -0
  62. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/mac_x86_64_py310/_deesse.so +0 -0
  63. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/mac_x86_64_py310/deesse.py +0 -0
  64. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/mac_x86_64_py311/__init__.py +0 -0
  65. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/mac_x86_64_py311/_deesse.so +0 -0
  66. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/mac_x86_64_py311/deesse.py +0 -0
  67. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/mac_x86_64_py312/__init__.py +0 -0
  68. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/mac_x86_64_py312/_deesse.so +0 -0
  69. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/mac_x86_64_py312/deesse.py +0 -0
  70. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/mac_x86_64_py39/__init__.py +0 -0
  71. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/mac_x86_64_py39/_deesse.so +0 -0
  72. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/mac_x86_64_py39/deesse.py +0 -0
  73. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/win_py310/__init__.py +0 -0
  74. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/win_py310/_deesse.pyd +0 -0
  75. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/win_py310/deesse.py +0 -0
  76. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/win_py310/vcruntime140.dll +0 -0
  77. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/win_py310/vcruntime140_1.dll +0 -0
  78. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/win_py311/__init__.py +0 -0
  79. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/win_py311/_deesse.pyd +0 -0
  80. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/win_py311/deesse.py +0 -0
  81. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/win_py311/vcruntime140.dll +0 -0
  82. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/win_py311/vcruntime140_1.dll +0 -0
  83. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/win_py312/__init__.py +0 -0
  84. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/win_py312/_deesse.pyd +0 -0
  85. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/win_py312/deesse.py +0 -0
  86. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/win_py312/vcruntime140.dll +0 -0
  87. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/win_py312/vcruntime140_1.dll +0 -0
  88. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/win_py39/__init__.py +0 -0
  89. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/win_py39/_deesse.pyd +0 -0
  90. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/win_py39/deesse.py +0 -0
  91. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/win_py39/vcruntime140.dll +0 -0
  92. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_deesse_core/win_py39/vcruntime140_1.dll +0 -0
  93. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/linux_old_py310/__init__.py +0 -0
  94. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/linux_old_py310/_geosclassic.so +0 -0
  95. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/linux_old_py310/geosclassic.py +0 -0
  96. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/linux_old_py311/__init__.py +0 -0
  97. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/linux_old_py311/_geosclassic.so +0 -0
  98. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/linux_old_py311/geosclassic.py +0 -0
  99. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/linux_old_py312/__init__.py +0 -0
  100. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/linux_old_py312/_geosclassic.so +0 -0
  101. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/linux_old_py312/geosclassic.py +0 -0
  102. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/linux_old_py39/__init__.py +0 -0
  103. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/linux_old_py39/_geosclassic.so +0 -0
  104. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/linux_old_py39/geosclassic.py +0 -0
  105. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/linux_py310/__init__.py +0 -0
  106. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/linux_py310/_geosclassic.so +0 -0
  107. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/linux_py310/geosclassic.py +0 -0
  108. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/linux_py311/__init__.py +0 -0
  109. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/linux_py311/_geosclassic.so +0 -0
  110. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/linux_py311/geosclassic.py +0 -0
  111. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/linux_py312/__init__.py +0 -0
  112. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/linux_py312/_geosclassic.so +0 -0
  113. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/linux_py312/geosclassic.py +0 -0
  114. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/linux_py39/__init__.py +0 -0
  115. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/linux_py39/_geosclassic.so +0 -0
  116. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/linux_py39/geosclassic.py +0 -0
  117. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/mac_arm64_py310/__init__.py +0 -0
  118. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/mac_arm64_py310/_geosclassic.so +0 -0
  119. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/mac_arm64_py310/geosclassic.py +0 -0
  120. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/mac_arm64_py311/__init__.py +0 -0
  121. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/mac_arm64_py311/_geosclassic.so +0 -0
  122. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/mac_arm64_py311/geosclassic.py +0 -0
  123. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/mac_arm64_py312/__init__.py +0 -0
  124. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/mac_arm64_py312/_geosclassic.so +0 -0
  125. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/mac_arm64_py312/geosclassic.py +0 -0
  126. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/mac_arm64_py39/__init__.py +0 -0
  127. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/mac_arm64_py39/_geosclassic.so +0 -0
  128. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/mac_arm64_py39/geosclassic.py +0 -0
  129. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/mac_x86_64_py310/__init__.py +0 -0
  130. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/mac_x86_64_py310/_geosclassic.so +0 -0
  131. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/mac_x86_64_py310/geosclassic.py +0 -0
  132. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/mac_x86_64_py311/__init__.py +0 -0
  133. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/mac_x86_64_py311/_geosclassic.so +0 -0
  134. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/mac_x86_64_py311/geosclassic.py +0 -0
  135. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/mac_x86_64_py312/__init__.py +0 -0
  136. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/mac_x86_64_py312/_geosclassic.so +0 -0
  137. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/mac_x86_64_py312/geosclassic.py +0 -0
  138. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/mac_x86_64_py39/__init__.py +0 -0
  139. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/mac_x86_64_py39/_geosclassic.so +0 -0
  140. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/mac_x86_64_py39/geosclassic.py +0 -0
  141. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/win_py310/__init__.py +0 -0
  142. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/win_py310/_geosclassic.pyd +0 -0
  143. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/win_py310/geosclassic.py +0 -0
  144. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/win_py310/vcruntime140.dll +0 -0
  145. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/win_py310/vcruntime140_1.dll +0 -0
  146. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/win_py311/__init__.py +0 -0
  147. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/win_py311/_geosclassic.pyd +0 -0
  148. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/win_py311/geosclassic.py +0 -0
  149. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/win_py311/vcruntime140.dll +0 -0
  150. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/win_py311/vcruntime140_1.dll +0 -0
  151. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/win_py312/__init__.py +0 -0
  152. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/win_py312/_geosclassic.pyd +0 -0
  153. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/win_py312/geosclassic.py +0 -0
  154. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/win_py312/vcruntime140.dll +0 -0
  155. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/win_py312/vcruntime140_1.dll +0 -0
  156. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/win_py39/__init__.py +0 -0
  157. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/win_py39/_geosclassic.pyd +0 -0
  158. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/win_py39/geosclassic.py +0 -0
  159. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/win_py39/vcruntime140.dll +0 -0
  160. {geone-1.2.17 → geone-1.2.18}/src/geone/lib_geosclassic_core/win_py39/vcruntime140_1.dll +0 -0
  161. {geone-1.2.17 → geone-1.2.18}/src/geone/markovChain.py +0 -0
  162. {geone-1.2.17 → geone-1.2.18}/src/geone/multiGaussian.py +0 -0
  163. {geone-1.2.17 → geone-1.2.18}/src/geone/pgs.py +0 -0
  164. {geone-1.2.17 → geone-1.2.18}/src/geone/randProcess.py +0 -0
  165. {geone-1.2.17 → geone-1.2.18}/src/geone/srf.py +0 -0
  166. {geone-1.2.17 → geone-1.2.18}/tests/test_estimator.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: geone
3
- Version: 1.2.17
3
+ Version: 1.2.18
4
4
  Summary: Geostatistics tools and Multiple Point Statistics
5
5
  Author-email: Julien Straubhaar <julien.straubhaar@unine.ch>, Philippe Renard <philippe.renard@unine.ch>
6
6
  License:
@@ -74,12 +74,14 @@ Requires-Dist: numpy<2,>=1
74
74
  Requires-Dist: pandas
75
75
  Requires-Dist: pyvista
76
76
  Requires-Dist: scipy
77
+ Dynamic: license
78
+ Dynamic: license-file
77
79
 
78
80
  # GEONE
79
81
 
80
82
  [![Documentation Status](https://readthedocs.org/projects/geone/badge/?version=latest)](https://geone.readthedocs.io/en/latest/?badge=latest)
81
83
 
82
- **Current version : 1.2.17** <!-- Update manually here! see src/geone/_version.py -->
84
+ **Current version : 1.2.18** <!-- Update manually here! see src/geone/_version.py -->
83
85
 
84
86
  GEONE is a Python3 package providing a set of tools for geostatistical modeling, including:
85
87
 
@@ -111,7 +113,7 @@ GEONE is available:
111
113
 
112
114
  ### Installation from [PyPI](https://pypi.org/project/geone)
113
115
 
114
- In a terminal type
116
+ In a terminal type
115
117
  ```
116
118
  pip install geone
117
119
  ```
@@ -130,7 +132,7 @@ pip install .
130
132
 
131
133
  Alternatively:
132
134
 
133
- - Instead of `git clone ...`, you can download GEONE from the [Github repository](https://github.com/randlab/geone): click on the green button "code" and choose "Download ZIP".
135
+ - Instead of `git clone ...`, you can download GEONE from the [Github repository](https://github.com/randlab/geone): click on the green button "code" and choose "Download ZIP".
134
136
  - Then, unzip the archive on your computer
135
137
  - Finally, in a terminal, go into the unzipped directory, and type `pip install .`
136
138
 
@@ -154,7 +156,7 @@ The following python packages are used by GEONE (tested on python 3.11.5):
154
156
  numpy version **less than 2.** is required
155
157
 
156
158
  ### Removing GEONE
157
- In a terminal type
159
+ In a terminal type
158
160
 
159
161
  `pip uninstall -y geone`
160
162
 
@@ -178,7 +180,7 @@ In a terminal type
178
180
  - C. R. Dietrich and G. N. Newsam (1993) A fast and exact method for multidimensional gaussian stochastic simulations. Water Resources Research 29(8):2861-2869, [doi:10.1029/93WR01070](https://dx.doi.org/10.1029/93WR01070)
179
181
  - A. T. A. Wood and G. Chan (1994) Simulation of stationary gaussian processes in [0,1]^d. Journal of Computational and Graphical Statistics 3(4):409-432, [doi:10.2307/1390903](https://dx.doi.org/10.2307/1390903)
180
182
 
181
- ### Other references
183
+ ### Other references
182
184
  - C. Lantuéjoul (2002) Geostatistical Simulation, Models and Algorithms. Springer Verlag, Berlin, 256 p.
183
185
  - P. Renard, D. Allard (2013), Connectivity metrics for subsurface flow and transport. Advances in Water Resources 51:168-196, `doi:10.1016/j.advwatres.2011.12.001 <https://doi.org/10.1016/j.advwatres.2011.12.001>`_
184
186
  - J. Straubhaar, P. Renard (2024), Exploring substitution random functions composed of stationary multi-Gaussian processes. Stochastic Environmental Research and Risk Assessment, `doi:10.1007/s00477-024-02662-x <https://doi.org/10.1007/s00477-024-02662-x>`_
@@ -2,7 +2,7 @@
2
2
 
3
3
  [![Documentation Status](https://readthedocs.org/projects/geone/badge/?version=latest)](https://geone.readthedocs.io/en/latest/?badge=latest)
4
4
 
5
- **Current version : 1.2.17** <!-- Update manually here! see src/geone/_version.py -->
5
+ **Current version : 1.2.18** <!-- Update manually here! see src/geone/_version.py -->
6
6
 
7
7
  GEONE is a Python3 package providing a set of tools for geostatistical modeling, including:
8
8
 
@@ -34,7 +34,7 @@ GEONE is available:
34
34
 
35
35
  ### Installation from [PyPI](https://pypi.org/project/geone)
36
36
 
37
- In a terminal type
37
+ In a terminal type
38
38
  ```
39
39
  pip install geone
40
40
  ```
@@ -53,7 +53,7 @@ pip install .
53
53
 
54
54
  Alternatively:
55
55
 
56
- - Instead of `git clone ...`, you can download GEONE from the [Github repository](https://github.com/randlab/geone): click on the green button "code" and choose "Download ZIP".
56
+ - Instead of `git clone ...`, you can download GEONE from the [Github repository](https://github.com/randlab/geone): click on the green button "code" and choose "Download ZIP".
57
57
  - Then, unzip the archive on your computer
58
58
  - Finally, in a terminal, go into the unzipped directory, and type `pip install .`
59
59
 
@@ -77,7 +77,7 @@ The following python packages are used by GEONE (tested on python 3.11.5):
77
77
  numpy version **less than 2.** is required
78
78
 
79
79
  ### Removing GEONE
80
- In a terminal type
80
+ In a terminal type
81
81
 
82
82
  `pip uninstall -y geone`
83
83
 
@@ -101,7 +101,7 @@ In a terminal type
101
101
  - C. R. Dietrich and G. N. Newsam (1993) A fast and exact method for multidimensional gaussian stochastic simulations. Water Resources Research 29(8):2861-2869, [doi:10.1029/93WR01070](https://dx.doi.org/10.1029/93WR01070)
102
102
  - A. T. A. Wood and G. Chan (1994) Simulation of stationary gaussian processes in [0,1]^d. Journal of Computational and Graphical Statistics 3(4):409-432, [doi:10.2307/1390903](https://dx.doi.org/10.2307/1390903)
103
103
 
104
- ### Other references
104
+ ### Other references
105
105
  - C. Lantuéjoul (2002) Geostatistical Simulation, Models and Algorithms. Springer Verlag, Berlin, 256 p.
106
106
  - P. Renard, D. Allard (2013), Connectivity metrics for subsurface flow and transport. Advances in Water Resources 51:168-196, `doi:10.1016/j.advwatres.2011.12.001 <https://doi.org/10.1016/j.advwatres.2011.12.001>`_
107
107
  - J. Straubhaar, P. Renard (2024), Exploring substitution random functions composed of stationary multi-Gaussian processes. Stochastic Environmental Research and Risk Assessment, `doi:10.1007/s00477-024-02662-x <https://doi.org/10.1007/s00477-024-02662-x>`_
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: geone
3
- Version: 1.2.17
3
+ Version: 1.2.18
4
4
  Summary: Geostatistics tools and Multiple Point Statistics
5
5
  Author-email: Julien Straubhaar <julien.straubhaar@unine.ch>, Philippe Renard <philippe.renard@unine.ch>
6
6
  License:
@@ -74,12 +74,14 @@ Requires-Dist: numpy<2,>=1
74
74
  Requires-Dist: pandas
75
75
  Requires-Dist: pyvista
76
76
  Requires-Dist: scipy
77
+ Dynamic: license
78
+ Dynamic: license-file
77
79
 
78
80
  # GEONE
79
81
 
80
82
  [![Documentation Status](https://readthedocs.org/projects/geone/badge/?version=latest)](https://geone.readthedocs.io/en/latest/?badge=latest)
81
83
 
82
- **Current version : 1.2.17** <!-- Update manually here! see src/geone/_version.py -->
84
+ **Current version : 1.2.18** <!-- Update manually here! see src/geone/_version.py -->
83
85
 
84
86
  GEONE is a Python3 package providing a set of tools for geostatistical modeling, including:
85
87
 
@@ -111,7 +113,7 @@ GEONE is available:
111
113
 
112
114
  ### Installation from [PyPI](https://pypi.org/project/geone)
113
115
 
114
- In a terminal type
116
+ In a terminal type
115
117
  ```
116
118
  pip install geone
117
119
  ```
@@ -130,7 +132,7 @@ pip install .
130
132
 
131
133
  Alternatively:
132
134
 
133
- - Instead of `git clone ...`, you can download GEONE from the [Github repository](https://github.com/randlab/geone): click on the green button "code" and choose "Download ZIP".
135
+ - Instead of `git clone ...`, you can download GEONE from the [Github repository](https://github.com/randlab/geone): click on the green button "code" and choose "Download ZIP".
134
136
  - Then, unzip the archive on your computer
135
137
  - Finally, in a terminal, go into the unzipped directory, and type `pip install .`
136
138
 
@@ -154,7 +156,7 @@ The following python packages are used by GEONE (tested on python 3.11.5):
154
156
  numpy version **less than 2.** is required
155
157
 
156
158
  ### Removing GEONE
157
- In a terminal type
159
+ In a terminal type
158
160
 
159
161
  `pip uninstall -y geone`
160
162
 
@@ -178,7 +180,7 @@ In a terminal type
178
180
  - C. R. Dietrich and G. N. Newsam (1993) A fast and exact method for multidimensional gaussian stochastic simulations. Water Resources Research 29(8):2861-2869, [doi:10.1029/93WR01070](https://dx.doi.org/10.1029/93WR01070)
179
181
  - A. T. A. Wood and G. Chan (1994) Simulation of stationary gaussian processes in [0,1]^d. Journal of Computational and Graphical Statistics 3(4):409-432, [doi:10.2307/1390903](https://dx.doi.org/10.2307/1390903)
180
182
 
181
- ### Other references
183
+ ### Other references
182
184
  - C. Lantuéjoul (2002) Geostatistical Simulation, Models and Algorithms. Springer Verlag, Berlin, 256 p.
183
185
  - P. Renard, D. Allard (2013), Connectivity metrics for subsurface flow and transport. Advances in Water Resources 51:168-196, `doi:10.1016/j.advwatres.2011.12.001 <https://doi.org/10.1016/j.advwatres.2011.12.001>`_
184
186
  - J. Straubhaar, P. Renard (2024), Exploring substitution random functions composed of stationary multi-Gaussian processes. Stochastic Environmental Research and Risk Assessment, `doi:10.1007/s00477-024-02662-x <https://doi.org/10.1007/s00477-024-02662-x>`_
@@ -1,6 +1,6 @@
1
1
  # Version
2
2
 
3
3
  # major, minor, micro
4
- version_info = (1, 2, 17)
4
+ version_info = (1, 2, 18)
5
5
 
6
6
  __version__ = '.'.join(map(str, version_info))
@@ -58,6 +58,8 @@ class BlockData(object):
58
58
  activatePropMax : sequence of floats of length `nblock`, optional
59
59
  maximal proportion of informed nodes in the block, above which the block
60
60
  data constraint is deactivated, for each block (used if `blockDataUsage=1`)
61
+
62
+ **Methods**
61
63
  """
62
64
  def __init__(self,
63
65
  blockDataUsage=0,
@@ -728,6 +728,8 @@ class CovModel1D(object):
728
728
  ('gaussian', {'w':10., 'r':100.0}), # elementary contribution
729
729
  ('nugget', {'w':0.5}) # elementary contribution
730
730
  ], name='gau+nug') # name (optional)
731
+
732
+ **Methods**
731
733
  """
732
734
  #
733
735
  # Methods
@@ -1434,6 +1436,8 @@ class CovModel2D(object):
1434
1436
  ('nugget', {'w':0.5}) # elementary contribution
1435
1437
  ], alpha=-30.0, # angle
1436
1438
  name='') # name (optional)
1439
+
1440
+ **Methods**
1437
1441
  """
1438
1442
  #
1439
1443
  # The 2x2 matrix m for changing the coordinates system from Ox'y' to Oxy is:
@@ -2604,6 +2608,8 @@ class CovModel3D(object):
2604
2608
  ('nugget', {'w':0.5}) # elementary contribution
2605
2609
  ], alpha=-30.0, beta=-40.0, gamma=20.0, # angles
2606
2610
  name='') # name (optional)
2611
+
2612
+ **Methods**
2607
2613
  """
2608
2614
  #
2609
2615
  # The 3x3 matrix m for changing the coordinates system from Ox'''y'''z'''
@@ -36,7 +36,7 @@ class SearchNeighborhoodParameters(object):
36
36
  Class defining search neighborhood parameters (for deesse).
37
37
 
38
38
  **Attributes**
39
- --------------
39
+
40
40
  radiusMode : str {'large_default', 'ti_range_default', 'ti_range', \
41
41
  'ti_range_xy', 'ti_range_xz', 'ti_range_yz', 'ti_range_xyz', \
42
42
  'manual'}, default: 'large_default'
@@ -135,7 +135,6 @@ class SearchNeighborhoodParameters(object):
135
135
  power for computing weight according to distance
136
136
 
137
137
  **Methods**
138
- -----------
139
138
  """
140
139
  def __init__(self,
141
140
  radiusMode='large_default',
@@ -189,7 +188,7 @@ class SoftProbability(object):
189
188
  Class defining probability constraints for one variable (for deesse).
190
189
 
191
190
  **Attributes**
192
- --------------
191
+
193
192
  probabilityConstraintUsage : int, default: 0
194
193
  defines the usage of probability constraints:
195
194
 
@@ -293,7 +292,6 @@ class SoftProbability(object):
293
292
  `probabilityConstraintThresholdType=1`
294
293
 
295
294
  **Methods**
296
- -----------
297
295
  """
298
296
  def __init__(self,
299
297
  probabilityConstraintUsage=0,
@@ -433,7 +431,7 @@ class Connectivity(object):
433
431
  Class defining connectivity constraints for one variable (for deesse).
434
432
 
435
433
  **Attributes**
436
- --------------
434
+
437
435
  connectivityConstraintUsage : int, default: 0
438
436
  defines the usage of connectivity constraints:
439
437
 
@@ -512,7 +510,6 @@ class Connectivity(object):
512
510
  used if `connectivityConstraintUsage=3`
513
511
 
514
512
  **Methods**
515
- -----------
516
513
  """
517
514
  def __init__(self,
518
515
  connectivityConstraintUsage=0,
@@ -604,7 +601,7 @@ class PyramidGeneralParameters(object):
604
601
  Class defining "pyramid general parameters" (for all variables) (for deesse).
605
602
 
606
603
  **Attributes**
607
- --------------
604
+
608
605
  npyramidLevel : int, default: 0
609
606
  number of pyramid level(s) (in addition to original simulation grid),
610
607
  integer greater than or equal to zero; if positive, pyramid is used and
@@ -703,7 +700,6 @@ class PyramidGeneralParameters(object):
703
700
  for the j-th pyramid level
704
701
 
705
702
  **Methods**
706
- -----------
707
703
  """
708
704
  def __init__(self,
709
705
  npyramidLevel=0,
@@ -863,7 +859,7 @@ class PyramidParameters(object):
863
859
  Class defining "pyramid parameters" for one variable (for deesse).
864
860
 
865
861
  **Attributes**
866
- --------------
862
+
867
863
  nlevel : int, default: 0
868
864
  number of pyramid level(s) (in addition to original simulation grid)
869
865
 
@@ -927,7 +923,6 @@ class PyramidParameters(object):
927
923
  during the simulation in every level)
928
924
 
929
925
  **Methods**
930
- -----------
931
926
  """
932
927
  def __init__(self,
933
928
  nlevel=0,
@@ -991,7 +986,7 @@ class DeesseInput(object):
991
986
  Class defining main input parameters for deesse.
992
987
 
993
988
  **Attributes**
994
- --------------
989
+
995
990
  simName : str, default: 'deesse_py'
996
991
  simulation name (useless)
997
992
 
@@ -1466,7 +1461,6 @@ class DeesseInput(object):
1466
1461
  [<n> is written on 5 digits, with leading zeros]
1467
1462
 
1468
1463
  **Methods**
1469
- -----------
1470
1464
  """
1471
1465
  def __init__(self,
1472
1466
  simName='deesse_py',
@@ -6396,7 +6390,7 @@ class DeesseXInputSectionPath(object):
6396
6390
  Class defining main input parameters for cross-simulation (deesseX).
6397
6391
 
6398
6392
  **Attributes**
6399
- --------------
6393
+
6400
6394
  sectionMode: str {'section_xy_xz_yz', \
6401
6395
  'section_xy_yz_xz', \
6402
6396
  'section_xz_xy_yz', \
@@ -6575,7 +6569,6 @@ class DeesseXInputSectionPath(object):
6575
6569
  simulation grid along x, y, z axis respectively
6576
6570
 
6577
6571
  **Methods**
6578
- -----------
6579
6572
  """
6580
6573
  def __init__(self,
6581
6574
  sectionMode='section_xz_yz',
@@ -6725,7 +6718,7 @@ class DeesseXInputSection(object):
6725
6718
  Class input parameters for one section type (deesseX).
6726
6719
 
6727
6720
  **Attributes**
6728
- --------------
6721
+
6729
6722
  nx : int, default: 0
6730
6723
  number of cells along x axis in the entire simulation grid (SG);
6731
6724
  should be consistent with the "parent" class :class:`DeesseXInput`
@@ -6876,7 +6869,6 @@ class DeesseXInputSection(object):
6876
6869
  as in :class:`DeesseInput`
6877
6870
 
6878
6871
  **Methods**
6879
- -----------
6880
6872
  """
6881
6873
  def __init__(self,
6882
6874
  nx=0, ny=0, nz=0,
@@ -7526,7 +7518,7 @@ class DeesseXInput(object):
7526
7518
  Class defining main input parameters for deesseX (cross-simulation/X-simulation).
7527
7519
 
7528
7520
  **Attributes**
7529
- --------------
7521
+
7530
7522
  simName : str, default: 'deesseX_py'
7531
7523
  simulation name (useless)
7532
7524
 
@@ -7659,7 +7651,6 @@ class DeesseXInput(object):
7659
7651
  [<n> is written on 5 digits, with leading zeros]
7660
7652
 
7661
7653
  **Methods**
7662
- -----------
7663
7654
  """
7664
7655
  def __init__(self,
7665
7656
  simName='deesseX_py',
@@ -82,6 +82,8 @@ class Img(object):
82
82
 
83
83
  name : str
84
84
  name of the image
85
+
86
+ **Methods**
85
87
  """
86
88
  #
87
89
  # Methods
@@ -398,19 +400,19 @@ class Img(object):
398
400
  # ------------------------------------------------------------------------
399
401
 
400
402
  # ------------------------------------------------------------------------
401
- def set_spacing(self, sx, sy, sz):
403
+ def set_spacing(self, sx=1.0, sy=1.0, sz=1.0):
402
404
  """
403
405
  Sets spacing, i.e. cell size along each axis.
404
406
 
405
407
  Parameters
406
408
  ----------
407
- sx : float
409
+ sx : float, default: 1.0
408
410
  cell size along x axis
409
411
 
410
- sy : float
412
+ sy : float, default: 1.0
411
413
  cell size along y axis
412
414
 
413
- sz : float
415
+ sz : float, default: 1.0
414
416
  cell size along z axis
415
417
  """
416
418
  # fname = 'set_spacing'
@@ -421,7 +423,7 @@ class Img(object):
421
423
  # ------------------------------------------------------------------------
422
424
 
423
425
  # ------------------------------------------------------------------------
424
- def set_origin(self, ox, oy, oz):
426
+ def set_origin(self, ox=0.0, oy=0.0, oz=0.0):
425
427
  """
426
428
  Sets grid origin (bottom-lower-left corner).
427
429
 
@@ -446,9 +448,9 @@ class Img(object):
446
448
  # ------------------------------------------------------------------------
447
449
  def set_grid(
448
450
  self,
449
- nx, ny, nz,
450
- sx, sy, sz,
451
- ox, oy, oz,
451
+ nx=1, ny=1, nz=1,
452
+ sx=1.0, sy=1.0, sz=1.0,
453
+ ox=0.0, oy=0.0, oz=0.0,
452
454
  newval=np.nan):
453
455
  """
454
456
  Sets grid geometry (dimension, cell size, and origin).
@@ -1456,6 +1458,8 @@ class PointSet(object):
1456
1458
 
1457
1459
  name : str
1458
1460
  name of the point set
1461
+
1462
+ **Methods**
1459
1463
  """
1460
1464
  #
1461
1465
  # Methods
@@ -2129,14 +2133,14 @@ class Img_interp_func(object):
2129
2133
  iz : int or `None` (default)
2130
2134
  same as `ix`, but for z axis
2131
2135
 
2132
- angle_var: bool, default: False
2136
+ angle_var : bool, default: False
2133
2137
  - if `True`: variable to be interpolated are considered as angles, and the \
2134
2138
  interpolation is done by first interpolating the cosine and the sine of \
2135
2139
  the angle values and then by retrieving the corresponding angle (by \
2136
2140
  using the function `numpy.arctan2`)
2137
2141
  - if `False`: values are interpolated directly
2138
2142
 
2139
- angle_deg: bool, default: True
2143
+ angle_deg : bool, default: True
2140
2144
  used if `angle_var=True`:
2141
2145
 
2142
2146
  - if `True`: the variable values are angles in degrees
@@ -2184,6 +2188,8 @@ class Img_interp_func(object):
2184
2188
  >>> method='linear', bounds_error=False, fill_value=np.nan)
2185
2189
  >>> v2 = interp2(points) # gives same values except for points beyond
2186
2190
  >>> # the domain of the image grid
2191
+
2192
+ **Methods**
2187
2193
  """
2188
2194
  def __init__(self,
2189
2195
  im,
@@ -928,7 +928,10 @@ def drawImage2Drgb(im, nancol=(1.0, 0.0, 0.0)):
928
928
  ind_isnan = np.any(np.isnan(vv), axis=1)
929
929
  vv[ind_isnan, :] = nancolf
930
930
 
931
- plt.imshow(vv.reshape(im.ny, im.nx, -1), origin='lower')
931
+ min0, max0 = im.ox, im.xmax()
932
+ min1, max1 = im.oy, im.ymax()
933
+
934
+ plt.imshow(vv.reshape(im.ny, im.nx, -1), origin='lower', extent=[min0, max0, min1, max1])
932
935
  # ----------------------------------------------------------------------------
933
936
 
934
937
  # ----------------------------------------------------------------------------
@@ -165,7 +165,7 @@ def add_path_by_drawing(
165
165
  # -----------------------------------------------------------------------------
166
166
 
167
167
  # -----------------------------------------------------------------------------
168
- def is_in_polygon(x, vertices, wrap=None, **kwargs):
168
+ def is_in_polygon(x, vertices, wrap=None, return_sum_of_angles=False, **kwargs):
169
169
  """
170
170
  Checks if point(s) is (are) in a polygon given by its vertices forming a close line.
171
171
 
@@ -175,6 +175,10 @@ def is_in_polygon(x, vertices, wrap=None, **kwargs):
175
175
  and first one). Then, the point is in the polygon if and only if this sum
176
176
  is equal to +/- 2 pi.
177
177
 
178
+ Note that if the sum of angles is +2 pi (resp. -2 pi), then the vertices form
179
+ a close line counterclockwise (resp. clockwise); this can be checked by
180
+ specifying a point `x` in the polygon and `return_sum_of_angles=True`.
181
+
178
182
  Parameters
179
183
  ----------
180
184
  x : 2D array-like or 1D array-like
@@ -195,6 +199,9 @@ def is_in_polygon(x, vertices, wrap=None, **kwargs):
195
199
 
196
200
  by default (`None`): `wrap` is automatically computed
197
201
 
202
+ return_sum_of_angles : bool, default: False
203
+ if `True`, the sum of angles (computed by the method) is returned
204
+
198
205
  kwargs :
199
206
  keyword arguments passed to function `numpy.isclose`
200
207
 
@@ -205,6 +212,12 @@ def is_in_polygon(x, vertices, wrap=None, **kwargs):
205
212
  the polygon;
206
213
  note: if `x` is of shape (m, 2), then `out` is a 1D array of shape (m, ),
207
214
  and if `x` is of shape (2, ) (one point), `out` is bool
215
+
216
+ sum_of_angles : 1D array of floats, or float
217
+ returned if `return_sum_of_angles=True`; for each point in `x`, the sum
218
+ of angles computed by the method is returned (`nan` if the sum is not
219
+ computed);
220
+ note: `sum_of_angles` is an array of same shape as `out` or a float
208
221
  """
209
222
  # fname = 'is_in_polygon'
210
223
 
@@ -221,6 +234,8 @@ def is_in_polygon(x, vertices, wrap=None, **kwargs):
221
234
  # Initialization
222
235
  xx = np.atleast_2d(x)
223
236
  res = np.zeros(xx.shape[0], dtype='bool')
237
+ if return_sum_of_angles:
238
+ res_sum = np.full((xx.shape[0],), np.nan)
224
239
 
225
240
  xmin, ymin = vertices.min(axis=0)
226
241
  xmax, ymax = vertices.max(axis=0)
@@ -247,18 +262,25 @@ def is_in_polygon(x, vertices, wrap=None, **kwargs):
247
262
  c = b - a
248
263
  c_norm2 = (c**2).sum(axis=1)
249
264
  sign = 2*(a[:,0]*b[:,1] - a[:,1]*b[:,0] > 0) - 1
250
- sum_angles = np.sum(sign*np.arccos(np.minimum(1.0, np.maximum(-1.0, (a_norm2 + b_norm2- c_norm2)/(2.0*ab_norm)))))
265
+ sum_angles = np.sum(sign*np.arccos(np.minimum(1.0, np.maximum(-1.0, (a_norm2 + b_norm2 - c_norm2)/(2.0*ab_norm)))))
251
266
 
252
267
  res[j] = np.isclose(np.abs(sum_angles), 2*np.pi)
268
+ if return_sum_of_angles:
269
+ res_sum[j] = sum_angles
253
270
 
254
271
  if np.asarray(x).ndim == 1:
255
272
  res = res[0]
273
+ if return_sum_of_angles:
274
+ res_sum = res_sum[0]
275
+
276
+ if return_sum_of_angles:
277
+ return res, res_sum
256
278
 
257
279
  return res
258
280
  # -----------------------------------------------------------------------------
259
281
 
260
282
  # -----------------------------------------------------------------------------
261
- def is_in_polygon_mp(x, vertices, wrap=None, nproc=-1, **kwargs):
283
+ def is_in_polygon_mp(x, vertices, wrap=None, return_sum_of_angles=False, nproc=-1, **kwargs):
262
284
  """
263
285
  Computes the same as the function :func:`tools.is_in_polygon`, using multiprocessing.
264
286
 
@@ -287,6 +309,9 @@ def is_in_polygon_mp(x, vertices, wrap=None, nproc=-1, **kwargs):
287
309
  # Set wrap key in keywords arguments
288
310
  kwargs['wrap'] = True
289
311
 
312
+ # Set return_sum_of_angles key in keywords arguments
313
+ kwargs['return_sum_of_angles'] = return_sum_of_angles
314
+
290
315
  # Initialization
291
316
  xx = np.atleast_2d(x)
292
317
 
@@ -312,10 +337,25 @@ def is_in_polygon_mp(x, vertices, wrap=None, nproc=-1, **kwargs):
312
337
  pool.join() # then, wait for the worker processes to exit.
313
338
 
314
339
  # Get result from each process
315
- res = np.hstack([w.get() for w in out_pool])
340
+ if return_sum_of_angles:
341
+ res = []
342
+ res_sum = []
343
+ for w in out_pool:
344
+ r, s = w.get()
345
+ res.append(r)
346
+ res_sum.append(s)
347
+ res = np.hstack(res)
348
+ res_sum = np.hstack(res_sum)
349
+ else:
350
+ res = np.hstack([w.get() for w in out_pool])
316
351
 
317
352
  if np.asarray(x).ndim == 1:
318
353
  res = res[0]
354
+ if return_sum_of_angles:
355
+ res_sum = res_sum[0]
356
+
357
+ if return_sum_of_angles:
358
+ return res, res_sum
319
359
 
320
360
  return res
321
361
  # -----------------------------------------------------------------------------
@@ -363,20 +403,20 @@ def rasterize_polygon_2d(
363
403
  nx : int, optional
364
404
  number of grid cells along x axis; see above for possible inputs
365
405
 
366
- ny : int
406
+ ny : int, optional
367
407
  number of grid cells along y axis; see above for possible inputs
368
408
 
369
- sx : float
409
+ sx : float, optional
370
410
  cell size along x axis; see above for possible inputs
371
411
 
372
- sy : float
412
+ sy : float, optional
373
413
  cell size along y axis; see above for possible inputs
374
414
 
375
- ox : float
415
+ ox : float, optional
376
416
  origin of the grid along x axis (x coordinate of cell border);
377
417
  see above for possible
378
418
 
379
- oy : float
419
+ oy : float, optional
380
420
  origin of the grid along y axis (y coordinate of cell border);
381
421
  see above for possible
382
422
 
@@ -559,6 +599,7 @@ def curv_coord_2d_from_center_line(
559
599
  -------
560
600
  u : 2D array or 1D array (same shape as `x`)
561
601
  coordinates in curvilinear system of the input point(s) `x` (see above)
602
+
562
603
  x_path : list of 2D arrays (or 2D array), optional
563
604
  path(s) from the initial point(s) to the point(s) I of the centerline
564
605
  (descending the gradient of the distance map):
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes