roms-tools 1.6.2__py3-none-any.whl → 2.0.0__py3-none-any.whl

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 (283) hide show
  1. ci/environment.yml +1 -1
  2. roms_tools/__init__.py +1 -0
  3. roms_tools/_version.py +1 -1
  4. roms_tools/setup/boundary_forcing.py +266 -256
  5. roms_tools/setup/datasets.py +986 -231
  6. roms_tools/setup/download.py +41 -15
  7. roms_tools/setup/grid.py +561 -512
  8. roms_tools/setup/initial_conditions.py +162 -106
  9. roms_tools/setup/mask.py +69 -0
  10. roms_tools/setup/plot.py +81 -23
  11. roms_tools/setup/regrid.py +4 -2
  12. roms_tools/setup/river_forcing.py +589 -0
  13. roms_tools/setup/surface_forcing.py +21 -130
  14. roms_tools/setup/tides.py +15 -79
  15. roms_tools/setup/topography.py +92 -128
  16. roms_tools/setup/utils.py +307 -25
  17. roms_tools/setup/vertical_coordinate.py +5 -16
  18. roms_tools/tests/test_setup/test_boundary_forcing.py +10 -7
  19. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/.zattrs +1 -1
  20. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/.zmetadata +157 -130
  21. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/ALK_ALT_CO2_east/.zattrs +1 -1
  22. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/ALK_ALT_CO2_north/.zattrs +1 -1
  23. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/ALK_ALT_CO2_south/.zattrs +1 -1
  24. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/ALK_ALT_CO2_west/.zattrs +1 -1
  25. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/ALK_east/.zattrs +1 -1
  26. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/ALK_north/.zattrs +1 -1
  27. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/ALK_south/.zattrs +1 -1
  28. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/ALK_west/.zattrs +1 -1
  29. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DIC_ALT_CO2_east/.zattrs +1 -1
  30. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DIC_ALT_CO2_north/.zattrs +1 -1
  31. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DIC_ALT_CO2_south/.zattrs +1 -1
  32. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DIC_ALT_CO2_west/.zattrs +1 -1
  33. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DIC_east/.zattrs +1 -1
  34. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DIC_north/.zattrs +1 -1
  35. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DIC_south/.zattrs +1 -1
  36. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DIC_west/.zattrs +1 -1
  37. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DOC_east/.zattrs +1 -1
  38. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DOC_north/.zattrs +1 -1
  39. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DOC_south/.zattrs +1 -1
  40. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DOC_west/.zattrs +1 -1
  41. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DOCr_east/.zattrs +1 -1
  42. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DOCr_north/.zattrs +1 -1
  43. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DOCr_south/.zattrs +1 -1
  44. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DOCr_west/.zattrs +1 -1
  45. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DON_east/.zattrs +1 -1
  46. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DON_north/.zattrs +1 -1
  47. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DON_south/.zattrs +1 -1
  48. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DON_west/.zattrs +1 -1
  49. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DONr_east/.zattrs +1 -1
  50. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DONr_north/.zattrs +1 -1
  51. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DONr_south/.zattrs +1 -1
  52. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DONr_west/.zattrs +1 -1
  53. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DOP_east/.zattrs +1 -1
  54. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DOP_north/.zattrs +1 -1
  55. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DOP_south/.zattrs +1 -1
  56. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DOP_west/.zattrs +1 -1
  57. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DOPr_east/.zattrs +1 -1
  58. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DOPr_north/.zattrs +1 -1
  59. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DOPr_south/.zattrs +1 -1
  60. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DOPr_west/.zattrs +1 -1
  61. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/Fe_east/.zattrs +1 -1
  62. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/Fe_north/.zattrs +1 -1
  63. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/Fe_south/.zattrs +1 -1
  64. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/Fe_west/.zattrs +1 -1
  65. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/Lig_east/.zattrs +1 -1
  66. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/Lig_north/.zattrs +1 -1
  67. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/Lig_south/.zattrs +1 -1
  68. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/Lig_west/.zattrs +1 -1
  69. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/NH4_east/.zattrs +1 -1
  70. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/NH4_north/.zattrs +1 -1
  71. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/NH4_south/.zattrs +1 -1
  72. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/NH4_west/.zattrs +1 -1
  73. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/NO3_east/.zattrs +1 -1
  74. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/NO3_north/.zattrs +1 -1
  75. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/NO3_south/.zattrs +1 -1
  76. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/NO3_west/.zattrs +1 -1
  77. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/O2_east/.zattrs +1 -1
  78. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/O2_north/.zattrs +1 -1
  79. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/O2_south/.zattrs +1 -1
  80. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/O2_west/.zattrs +1 -1
  81. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/PO4_east/.zattrs +1 -1
  82. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/PO4_north/.zattrs +1 -1
  83. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/PO4_south/.zattrs +1 -1
  84. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/PO4_west/.zattrs +1 -1
  85. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/SiO3_east/.zattrs +1 -1
  86. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/SiO3_north/.zattrs +1 -1
  87. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/SiO3_south/.zattrs +1 -1
  88. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/SiO3_west/.zattrs +1 -1
  89. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/abs_time/.zattrs +1 -0
  90. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/bry_time/.zattrs +1 -1
  91. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diatC_east/.zattrs +1 -1
  92. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diatC_north/.zattrs +1 -1
  93. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diatC_south/.zattrs +1 -1
  94. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diatC_west/.zattrs +1 -1
  95. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diatChl_east/.zattrs +1 -1
  96. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diatChl_north/.zattrs +1 -1
  97. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diatChl_south/.zattrs +1 -1
  98. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diatChl_west/.zattrs +1 -1
  99. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diatFe_east/.zattrs +1 -1
  100. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diatFe_north/.zattrs +1 -1
  101. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diatFe_south/.zattrs +1 -1
  102. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diatFe_west/.zattrs +1 -1
  103. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diatP_east/.zattrs +1 -1
  104. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diatP_north/.zattrs +1 -1
  105. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diatP_south/.zattrs +1 -1
  106. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diatP_west/.zattrs +1 -1
  107. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diatSi_east/.zattrs +1 -1
  108. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diatSi_north/.zattrs +1 -1
  109. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diatSi_south/.zattrs +1 -1
  110. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diatSi_west/.zattrs +1 -1
  111. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diazC_east/.zattrs +1 -1
  112. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diazC_north/.zattrs +1 -1
  113. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diazC_south/.zattrs +1 -1
  114. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diazC_west/.zattrs +1 -1
  115. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diazChl_east/.zattrs +1 -1
  116. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diazChl_north/.zattrs +1 -1
  117. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diazChl_south/.zattrs +1 -1
  118. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diazChl_west/.zattrs +1 -1
  119. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diazFe_east/.zattrs +1 -1
  120. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diazFe_north/.zattrs +1 -1
  121. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diazFe_south/.zattrs +1 -1
  122. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diazFe_west/.zattrs +1 -1
  123. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diazP_east/.zattrs +1 -1
  124. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diazP_north/.zattrs +1 -1
  125. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diazP_south/.zattrs +1 -1
  126. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diazP_west/.zattrs +1 -1
  127. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/month/.zarray +20 -0
  128. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/month/.zattrs +6 -0
  129. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/month/0 +0 -0
  130. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/spC_east/.zattrs +1 -1
  131. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/spC_north/.zattrs +1 -1
  132. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/spC_south/.zattrs +1 -1
  133. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/spC_west/.zattrs +1 -1
  134. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/spCaCO3_east/.zattrs +1 -1
  135. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/spCaCO3_north/.zattrs +1 -1
  136. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/spCaCO3_south/.zattrs +1 -1
  137. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/spCaCO3_west/.zattrs +1 -1
  138. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/spChl_east/.zattrs +1 -1
  139. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/spChl_north/.zattrs +1 -1
  140. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/spChl_south/.zattrs +1 -1
  141. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/spChl_west/.zattrs +1 -1
  142. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/spFe_east/.zattrs +1 -1
  143. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/spFe_north/.zattrs +1 -1
  144. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/spFe_south/.zattrs +1 -1
  145. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/spFe_west/.zattrs +1 -1
  146. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/spP_east/.zattrs +1 -1
  147. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/spP_north/.zattrs +1 -1
  148. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/spP_south/.zattrs +1 -1
  149. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/spP_west/.zattrs +1 -1
  150. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/zooC_east/.zattrs +1 -1
  151. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/zooC_north/.zattrs +1 -1
  152. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/zooC_south/.zattrs +1 -1
  153. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/zooC_west/.zattrs +1 -1
  154. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_climatology.zarr/.zattrs +1 -1
  155. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_climatology.zarr/.zmetadata +39 -12
  156. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_climatology.zarr/abs_time/.zattrs +1 -0
  157. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_climatology.zarr/dust/.zattrs +1 -1
  158. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_climatology.zarr/dust_time/.zattrs +1 -1
  159. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_climatology.zarr/iron/.zattrs +1 -1
  160. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_climatology.zarr/iron_time/.zattrs +1 -1
  161. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_climatology.zarr/month/.zarray +20 -0
  162. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_climatology.zarr/month/.zattrs +6 -0
  163. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_climatology.zarr/month/0 +0 -0
  164. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_climatology.zarr/nhy/.zattrs +1 -1
  165. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_climatology.zarr/nhy_time/.zattrs +1 -1
  166. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_climatology.zarr/nox/.zattrs +1 -1
  167. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_climatology.zarr/nox_time/.zattrs +1 -1
  168. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_climatology.zarr/pco2_air/.zattrs +1 -1
  169. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_climatology.zarr/pco2_air_alt/.zattrs +1 -1
  170. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_climatology.zarr/pco2_time/.zattrs +1 -1
  171. roms_tools/tests/test_setup/test_data/grid.zarr/.zattrs +0 -1
  172. roms_tools/tests/test_setup/test_data/grid.zarr/.zmetadata +56 -201
  173. roms_tools/tests/test_setup/test_data/grid.zarr/Cs_r/.zattrs +1 -1
  174. roms_tools/tests/test_setup/test_data/grid.zarr/Cs_w/.zattrs +1 -1
  175. roms_tools/tests/test_setup/test_data/grid.zarr/{interface_depth_rho → sigma_r}/.zarray +2 -6
  176. roms_tools/tests/test_setup/test_data/grid.zarr/sigma_r/.zattrs +7 -0
  177. roms_tools/tests/test_setup/test_data/grid.zarr/sigma_r/0 +0 -0
  178. roms_tools/tests/test_setup/test_data/grid.zarr/{interface_depth_u → sigma_w}/.zarray +2 -6
  179. roms_tools/tests/test_setup/test_data/grid.zarr/sigma_w/.zattrs +7 -0
  180. roms_tools/tests/test_setup/test_data/grid.zarr/sigma_w/0 +0 -0
  181. roms_tools/tests/test_setup/test_data/grid_that_straddles_dateline.zarr/.zattrs +1 -2
  182. roms_tools/tests/test_setup/test_data/grid_that_straddles_dateline.zarr/.zmetadata +58 -203
  183. roms_tools/tests/test_setup/test_data/grid_that_straddles_dateline.zarr/Cs_r/.zattrs +1 -1
  184. roms_tools/tests/test_setup/test_data/grid_that_straddles_dateline.zarr/Cs_w/.zattrs +1 -1
  185. roms_tools/tests/test_setup/test_data/grid_that_straddles_dateline.zarr/h/.zattrs +1 -1
  186. roms_tools/tests/test_setup/test_data/grid_that_straddles_dateline.zarr/h/0.0 +0 -0
  187. roms_tools/tests/test_setup/test_data/grid_that_straddles_dateline.zarr/mask_coarse/0.0 +0 -0
  188. roms_tools/tests/test_setup/test_data/grid_that_straddles_dateline.zarr/mask_rho/0.0 +0 -0
  189. roms_tools/tests/test_setup/test_data/grid_that_straddles_dateline.zarr/mask_u/0.0 +0 -0
  190. roms_tools/tests/test_setup/test_data/grid_that_straddles_dateline.zarr/mask_v/0.0 +0 -0
  191. roms_tools/tests/test_setup/test_data/{grid.zarr/interface_depth_v → grid_that_straddles_dateline.zarr/sigma_r}/.zarray +2 -6
  192. roms_tools/tests/test_setup/test_data/grid_that_straddles_dateline.zarr/sigma_r/.zattrs +7 -0
  193. roms_tools/tests/test_setup/test_data/grid_that_straddles_dateline.zarr/sigma_r/0 +0 -0
  194. roms_tools/tests/test_setup/test_data/{grid.zarr/layer_depth_rho → grid_that_straddles_dateline.zarr/sigma_w}/.zarray +2 -6
  195. roms_tools/tests/test_setup/test_data/grid_that_straddles_dateline.zarr/sigma_w/.zattrs +7 -0
  196. roms_tools/tests/test_setup/test_data/grid_that_straddles_dateline.zarr/sigma_w/0 +0 -0
  197. roms_tools/tests/test_setup/test_data/river_forcing.zarr/.zattrs +3 -0
  198. roms_tools/tests/test_setup/test_data/river_forcing.zarr/.zgroup +3 -0
  199. roms_tools/tests/test_setup/test_data/river_forcing.zarr/.zmetadata +214 -0
  200. roms_tools/tests/test_setup/test_data/river_forcing.zarr/abs_time/.zarray +20 -0
  201. roms_tools/tests/test_setup/test_data/river_forcing.zarr/abs_time/.zattrs +8 -0
  202. roms_tools/tests/test_setup/test_data/river_forcing.zarr/abs_time/0 +0 -0
  203. roms_tools/tests/test_setup/test_data/river_forcing.zarr/month/.zarray +20 -0
  204. roms_tools/tests/test_setup/test_data/river_forcing.zarr/month/.zattrs +6 -0
  205. roms_tools/tests/test_setup/test_data/river_forcing.zarr/month/0 +0 -0
  206. roms_tools/tests/test_setup/test_data/river_forcing.zarr/river_name/.zarray +24 -0
  207. roms_tools/tests/test_setup/test_data/river_forcing.zarr/river_name/.zattrs +6 -0
  208. roms_tools/tests/test_setup/test_data/river_forcing.zarr/river_name/0 +0 -0
  209. roms_tools/tests/test_setup/test_data/river_forcing.zarr/river_time/.zarray +20 -0
  210. roms_tools/tests/test_setup/test_data/river_forcing.zarr/river_time/.zattrs +8 -0
  211. roms_tools/tests/test_setup/test_data/river_forcing.zarr/river_time/0 +0 -0
  212. roms_tools/tests/test_setup/test_data/{grid.zarr/layer_depth_v → river_forcing.zarr/river_tracer}/.zarray +4 -4
  213. roms_tools/tests/test_setup/test_data/river_forcing.zarr/river_tracer/.zattrs +10 -0
  214. roms_tools/tests/test_setup/test_data/river_forcing.zarr/river_tracer/0.0.0 +0 -0
  215. roms_tools/tests/test_setup/test_data/river_forcing.zarr/river_volume/.zarray +22 -0
  216. roms_tools/tests/test_setup/test_data/river_forcing.zarr/river_volume/.zattrs +9 -0
  217. roms_tools/tests/test_setup/test_data/river_forcing.zarr/river_volume/0.0 +0 -0
  218. roms_tools/tests/test_setup/test_data/{grid.zarr/layer_depth_u → river_forcing.zarr/tracer_name}/.zarray +2 -6
  219. roms_tools/tests/test_setup/test_data/river_forcing.zarr/tracer_name/.zattrs +6 -0
  220. roms_tools/tests/test_setup/test_data/river_forcing.zarr/tracer_name/0 +0 -0
  221. roms_tools/tests/test_setup/test_data/river_forcing_no_climatology.zarr/.zattrs +1 -0
  222. roms_tools/tests/test_setup/test_data/river_forcing_no_climatology.zarr/.zgroup +3 -0
  223. roms_tools/tests/test_setup/test_data/river_forcing_no_climatology.zarr/.zmetadata +185 -0
  224. roms_tools/tests/test_setup/test_data/river_forcing_no_climatology.zarr/abs_time/.zarray +20 -0
  225. roms_tools/tests/test_setup/test_data/river_forcing_no_climatology.zarr/abs_time/.zattrs +8 -0
  226. roms_tools/tests/test_setup/test_data/river_forcing_no_climatology.zarr/abs_time/0 +0 -0
  227. roms_tools/tests/test_setup/test_data/river_forcing_no_climatology.zarr/river_name/.zarray +24 -0
  228. roms_tools/tests/test_setup/test_data/river_forcing_no_climatology.zarr/river_name/.zattrs +6 -0
  229. roms_tools/tests/test_setup/test_data/river_forcing_no_climatology.zarr/river_name/0 +0 -0
  230. roms_tools/tests/test_setup/test_data/river_forcing_no_climatology.zarr/river_time/.zarray +20 -0
  231. roms_tools/tests/test_setup/test_data/river_forcing_no_climatology.zarr/river_time/.zattrs +7 -0
  232. roms_tools/tests/test_setup/test_data/river_forcing_no_climatology.zarr/river_time/0 +0 -0
  233. roms_tools/tests/test_setup/test_data/{grid_that_straddles_dateline.zarr/interface_depth_v → river_forcing_no_climatology.zarr/river_tracer}/.zarray +4 -4
  234. roms_tools/tests/test_setup/test_data/river_forcing_no_climatology.zarr/river_tracer/.zattrs +10 -0
  235. roms_tools/tests/test_setup/test_data/river_forcing_no_climatology.zarr/river_tracer/0.0.0 +0 -0
  236. roms_tools/tests/test_setup/test_data/river_forcing_no_climatology.zarr/river_volume/.zarray +22 -0
  237. roms_tools/tests/test_setup/test_data/river_forcing_no_climatology.zarr/river_volume/.zattrs +9 -0
  238. roms_tools/tests/test_setup/test_data/river_forcing_no_climatology.zarr/river_volume/0.0 +0 -0
  239. roms_tools/tests/test_setup/test_data/{grid_that_straddles_dateline.zarr/interface_depth_u → river_forcing_no_climatology.zarr/tracer_name}/.zarray +2 -6
  240. roms_tools/tests/test_setup/test_data/river_forcing_no_climatology.zarr/tracer_name/.zattrs +6 -0
  241. roms_tools/tests/test_setup/test_data/river_forcing_no_climatology.zarr/tracer_name/0 +0 -0
  242. roms_tools/tests/test_setup/test_grid.py +110 -12
  243. roms_tools/tests/test_setup/test_initial_conditions.py +2 -3
  244. roms_tools/tests/test_setup/test_river_forcing.py +367 -0
  245. roms_tools/tests/test_setup/test_surface_forcing.py +2 -24
  246. roms_tools/tests/test_setup/test_tides.py +2 -3
  247. roms_tools/tests/test_setup/test_topography.py +106 -1
  248. roms_tools/tests/test_setup/test_validation.py +4 -0
  249. roms_tools/utils.py +12 -10
  250. {roms_tools-1.6.2.dist-info → roms_tools-2.0.0.dist-info}/LICENSE +1 -1
  251. {roms_tools-1.6.2.dist-info → roms_tools-2.0.0.dist-info}/METADATA +6 -5
  252. {roms_tools-1.6.2.dist-info → roms_tools-2.0.0.dist-info}/RECORD +254 -225
  253. {roms_tools-1.6.2.dist-info → roms_tools-2.0.0.dist-info}/WHEEL +1 -1
  254. roms_tools/tests/test_setup/test_data/grid.zarr/interface_depth_rho/.zattrs +0 -9
  255. roms_tools/tests/test_setup/test_data/grid.zarr/interface_depth_rho/0.0.0 +0 -0
  256. roms_tools/tests/test_setup/test_data/grid.zarr/interface_depth_u/.zattrs +0 -9
  257. roms_tools/tests/test_setup/test_data/grid.zarr/interface_depth_u/0.0.0 +0 -0
  258. roms_tools/tests/test_setup/test_data/grid.zarr/interface_depth_v/.zattrs +0 -9
  259. roms_tools/tests/test_setup/test_data/grid.zarr/interface_depth_v/0.0.0 +0 -0
  260. roms_tools/tests/test_setup/test_data/grid.zarr/layer_depth_rho/.zattrs +0 -9
  261. roms_tools/tests/test_setup/test_data/grid.zarr/layer_depth_rho/0.0.0 +0 -0
  262. roms_tools/tests/test_setup/test_data/grid.zarr/layer_depth_u/.zattrs +0 -9
  263. roms_tools/tests/test_setup/test_data/grid.zarr/layer_depth_u/0.0.0 +0 -0
  264. roms_tools/tests/test_setup/test_data/grid.zarr/layer_depth_v/.zattrs +0 -9
  265. roms_tools/tests/test_setup/test_data/grid.zarr/layer_depth_v/0.0.0 +0 -0
  266. roms_tools/tests/test_setup/test_data/grid_that_straddles_dateline.zarr/interface_depth_rho/.zarray +0 -24
  267. roms_tools/tests/test_setup/test_data/grid_that_straddles_dateline.zarr/interface_depth_rho/.zattrs +0 -9
  268. roms_tools/tests/test_setup/test_data/grid_that_straddles_dateline.zarr/interface_depth_rho/0.0.0 +0 -0
  269. roms_tools/tests/test_setup/test_data/grid_that_straddles_dateline.zarr/interface_depth_u/.zattrs +0 -9
  270. roms_tools/tests/test_setup/test_data/grid_that_straddles_dateline.zarr/interface_depth_u/0.0.0 +0 -0
  271. roms_tools/tests/test_setup/test_data/grid_that_straddles_dateline.zarr/interface_depth_v/.zattrs +0 -9
  272. roms_tools/tests/test_setup/test_data/grid_that_straddles_dateline.zarr/interface_depth_v/0.0.0 +0 -0
  273. roms_tools/tests/test_setup/test_data/grid_that_straddles_dateline.zarr/layer_depth_rho/.zarray +0 -24
  274. roms_tools/tests/test_setup/test_data/grid_that_straddles_dateline.zarr/layer_depth_rho/.zattrs +0 -9
  275. roms_tools/tests/test_setup/test_data/grid_that_straddles_dateline.zarr/layer_depth_rho/0.0.0 +0 -0
  276. roms_tools/tests/test_setup/test_data/grid_that_straddles_dateline.zarr/layer_depth_u/.zarray +0 -24
  277. roms_tools/tests/test_setup/test_data/grid_that_straddles_dateline.zarr/layer_depth_u/.zattrs +0 -9
  278. roms_tools/tests/test_setup/test_data/grid_that_straddles_dateline.zarr/layer_depth_u/0.0.0 +0 -0
  279. roms_tools/tests/test_setup/test_data/grid_that_straddles_dateline.zarr/layer_depth_v/.zarray +0 -24
  280. roms_tools/tests/test_setup/test_data/grid_that_straddles_dateline.zarr/layer_depth_v/.zattrs +0 -9
  281. roms_tools/tests/test_setup/test_data/grid_that_straddles_dateline.zarr/layer_depth_v/0.0.0 +0 -0
  282. roms_tools/tests/test_setup/test_vertical_coordinate.py +0 -91
  283. {roms_tools-1.6.2.dist-info → roms_tools-2.0.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,185 @@
1
+ {
2
+ "metadata": {
3
+ ".zattrs": {},
4
+ ".zgroup": {
5
+ "zarr_format": 2
6
+ },
7
+ "abs_time/.zarray": {
8
+ "chunks": [
9
+ 4
10
+ ],
11
+ "compressor": {
12
+ "blocksize": 0,
13
+ "clevel": 5,
14
+ "cname": "lz4",
15
+ "id": "blosc",
16
+ "shuffle": 1
17
+ },
18
+ "dtype": "<i8",
19
+ "fill_value": null,
20
+ "filters": null,
21
+ "order": "C",
22
+ "shape": [
23
+ 4
24
+ ],
25
+ "zarr_format": 2
26
+ },
27
+ "abs_time/.zattrs": {
28
+ "_ARRAY_DIMENSIONS": [
29
+ "river_time"
30
+ ],
31
+ "calendar": "proleptic_gregorian",
32
+ "long_name": "absolute time",
33
+ "units": "days since 1997-12-15 00:00:00"
34
+ },
35
+ "river_name/.zarray": {
36
+ "chunks": [
37
+ 6
38
+ ],
39
+ "compressor": {
40
+ "blocksize": 0,
41
+ "clevel": 5,
42
+ "cname": "lz4",
43
+ "id": "blosc",
44
+ "shuffle": 1
45
+ },
46
+ "dtype": "|O",
47
+ "fill_value": null,
48
+ "filters": [
49
+ {
50
+ "id": "vlen-utf8"
51
+ }
52
+ ],
53
+ "order": "C",
54
+ "shape": [
55
+ 6
56
+ ],
57
+ "zarr_format": 2
58
+ },
59
+ "river_name/.zattrs": {
60
+ "_ARRAY_DIMENSIONS": [
61
+ "nriver"
62
+ ],
63
+ "long_name": "River name"
64
+ },
65
+ "river_time/.zarray": {
66
+ "chunks": [
67
+ 4
68
+ ],
69
+ "compressor": {
70
+ "blocksize": 0,
71
+ "clevel": 5,
72
+ "cname": "lz4",
73
+ "id": "blosc",
74
+ "shuffle": 1
75
+ },
76
+ "dtype": "<f8",
77
+ "fill_value": "NaN",
78
+ "filters": null,
79
+ "order": "C",
80
+ "shape": [
81
+ 4
82
+ ],
83
+ "zarr_format": 2
84
+ },
85
+ "river_time/.zattrs": {
86
+ "_ARRAY_DIMENSIONS": [
87
+ "river_time"
88
+ ],
89
+ "long_name": "relative time: days since 2000-01-01 00:00:00",
90
+ "units": "days"
91
+ },
92
+ "river_tracer/.zarray": {
93
+ "chunks": [
94
+ 4,
95
+ 2,
96
+ 6
97
+ ],
98
+ "compressor": {
99
+ "blocksize": 0,
100
+ "clevel": 5,
101
+ "cname": "lz4",
102
+ "id": "blosc",
103
+ "shuffle": 1
104
+ },
105
+ "dtype": "<f4",
106
+ "fill_value": "NaN",
107
+ "filters": null,
108
+ "order": "C",
109
+ "shape": [
110
+ 4,
111
+ 2,
112
+ 6
113
+ ],
114
+ "zarr_format": 2
115
+ },
116
+ "river_tracer/.zattrs": {
117
+ "_ARRAY_DIMENSIONS": [
118
+ "river_time",
119
+ "ntracers",
120
+ "nriver"
121
+ ],
122
+ "coordinates": "abs_time river_name tracer_name",
123
+ "long_name": "River tracer data",
124
+ "units": "degrees C [temperature]; psu [salinity]"
125
+ },
126
+ "river_volume/.zarray": {
127
+ "chunks": [
128
+ 4,
129
+ 6
130
+ ],
131
+ "compressor": {
132
+ "blocksize": 0,
133
+ "clevel": 5,
134
+ "cname": "lz4",
135
+ "id": "blosc",
136
+ "shuffle": 1
137
+ },
138
+ "dtype": "<f4",
139
+ "fill_value": "NaN",
140
+ "filters": null,
141
+ "order": "C",
142
+ "shape": [
143
+ 4,
144
+ 6
145
+ ],
146
+ "zarr_format": 2
147
+ },
148
+ "river_volume/.zattrs": {
149
+ "_ARRAY_DIMENSIONS": [
150
+ "river_time",
151
+ "nriver"
152
+ ],
153
+ "coordinates": "abs_time river_name",
154
+ "long_name": "River volume flux",
155
+ "units": "m^3/s"
156
+ },
157
+ "tracer_name/.zarray": {
158
+ "chunks": [
159
+ 2
160
+ ],
161
+ "compressor": {
162
+ "blocksize": 0,
163
+ "clevel": 5,
164
+ "cname": "lz4",
165
+ "id": "blosc",
166
+ "shuffle": 1
167
+ },
168
+ "dtype": "<U11",
169
+ "fill_value": null,
170
+ "filters": null,
171
+ "order": "C",
172
+ "shape": [
173
+ 2
174
+ ],
175
+ "zarr_format": 2
176
+ },
177
+ "tracer_name/.zattrs": {
178
+ "_ARRAY_DIMENSIONS": [
179
+ "ntracers"
180
+ ],
181
+ "long_name": "Tracer name"
182
+ }
183
+ },
184
+ "zarr_consolidated_format": 1
185
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "chunks": [
3
+ 4
4
+ ],
5
+ "compressor": {
6
+ "blocksize": 0,
7
+ "clevel": 5,
8
+ "cname": "lz4",
9
+ "id": "blosc",
10
+ "shuffle": 1
11
+ },
12
+ "dtype": "<i8",
13
+ "fill_value": null,
14
+ "filters": null,
15
+ "order": "C",
16
+ "shape": [
17
+ 4
18
+ ],
19
+ "zarr_format": 2
20
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "_ARRAY_DIMENSIONS": [
3
+ "river_time"
4
+ ],
5
+ "calendar": "proleptic_gregorian",
6
+ "long_name": "absolute time",
7
+ "units": "days since 1997-12-15 00:00:00"
8
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "chunks": [
3
+ 6
4
+ ],
5
+ "compressor": {
6
+ "blocksize": 0,
7
+ "clevel": 5,
8
+ "cname": "lz4",
9
+ "id": "blosc",
10
+ "shuffle": 1
11
+ },
12
+ "dtype": "|O",
13
+ "fill_value": null,
14
+ "filters": [
15
+ {
16
+ "id": "vlen-utf8"
17
+ }
18
+ ],
19
+ "order": "C",
20
+ "shape": [
21
+ 6
22
+ ],
23
+ "zarr_format": 2
24
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "_ARRAY_DIMENSIONS": [
3
+ "nriver"
4
+ ],
5
+ "long_name": "River name"
6
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "chunks": [
3
+ 4
4
+ ],
5
+ "compressor": {
6
+ "blocksize": 0,
7
+ "clevel": 5,
8
+ "cname": "lz4",
9
+ "id": "blosc",
10
+ "shuffle": 1
11
+ },
12
+ "dtype": "<f8",
13
+ "fill_value": "NaN",
14
+ "filters": null,
15
+ "order": "C",
16
+ "shape": [
17
+ 4
18
+ ],
19
+ "zarr_format": 2
20
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "_ARRAY_DIMENSIONS": [
3
+ "river_time"
4
+ ],
5
+ "long_name": "relative time: days since 2000-01-01 00:00:00",
6
+ "units": "days"
7
+ }
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "chunks": [
3
- 101,
3
+ 4,
4
4
  2,
5
- 3
5
+ 6
6
6
  ],
7
7
  "compressor": {
8
8
  "blocksize": 0,
@@ -16,9 +16,9 @@
16
16
  "filters": null,
17
17
  "order": "C",
18
18
  "shape": [
19
- 101,
19
+ 4,
20
20
  2,
21
- 3
21
+ 6
22
22
  ],
23
23
  "zarr_format": 2
24
24
  }
@@ -0,0 +1,10 @@
1
+ {
2
+ "_ARRAY_DIMENSIONS": [
3
+ "river_time",
4
+ "ntracers",
5
+ "nriver"
6
+ ],
7
+ "coordinates": "abs_time river_name tracer_name",
8
+ "long_name": "River tracer data",
9
+ "units": "degrees C [temperature]; psu [salinity]"
10
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "chunks": [
3
+ 4,
4
+ 6
5
+ ],
6
+ "compressor": {
7
+ "blocksize": 0,
8
+ "clevel": 5,
9
+ "cname": "lz4",
10
+ "id": "blosc",
11
+ "shuffle": 1
12
+ },
13
+ "dtype": "<f4",
14
+ "fill_value": "NaN",
15
+ "filters": null,
16
+ "order": "C",
17
+ "shape": [
18
+ 4,
19
+ 6
20
+ ],
21
+ "zarr_format": 2
22
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "_ARRAY_DIMENSIONS": [
3
+ "river_time",
4
+ "nriver"
5
+ ],
6
+ "coordinates": "abs_time river_name",
7
+ "long_name": "River volume flux",
8
+ "units": "m^3/s"
9
+ }
@@ -1,7 +1,5 @@
1
1
  {
2
2
  "chunks": [
3
- 101,
4
- 3,
5
3
  2
6
4
  ],
7
5
  "compressor": {
@@ -11,13 +9,11 @@
11
9
  "id": "blosc",
12
10
  "shuffle": 1
13
11
  },
14
- "dtype": "<f4",
15
- "fill_value": "NaN",
12
+ "dtype": "<U11",
13
+ "fill_value": null,
16
14
  "filters": null,
17
15
  "order": "C",
18
16
  "shape": [
19
- 101,
20
- 3,
21
17
  2
22
18
  ],
23
19
  "zarr_format": 2
@@ -0,0 +1,6 @@
1
+ {
2
+ "_ARRAY_DIMENSIONS": [
3
+ "ntracers"
4
+ ],
5
+ "long_name": "Tracer name"
6
+ }
@@ -114,7 +114,7 @@ def test_plot_save_methods(tmp_path):
114
114
 
115
115
 
116
116
  def test_raise_if_domain_too_large():
117
- with pytest.raises(ValueError, match="Domain size has to be smaller"):
117
+ with pytest.raises(ValueError, match="Domain size exceeds"):
118
118
  Grid(nx=3, ny=3, size_x=30000, size_y=30000, center_lon=0, center_lat=51.5)
119
119
 
120
120
  # test grid with reasonable domain size
@@ -181,12 +181,6 @@ def test_compatability_with_matlab_grid(tmp_path):
181
181
  "lon_v",
182
182
  "lat_coarse",
183
183
  "lon_coarse",
184
- "layer_depth_rho",
185
- "layer_depth_u",
186
- "layer_depth_v",
187
- "interface_depth_rho",
188
- "interface_depth_u",
189
- "interface_depth_v",
190
184
  ]
191
185
  )
192
186
  actual_coords = set(grid.ds.coords.keys())
@@ -229,7 +223,7 @@ def test_roundtrip_netcdf(tmp_path):
229
223
  center_lon=0.0,
230
224
  center_lat=0.0,
231
225
  rot=0.0,
232
- topography_source="ETOPO5",
226
+ topography_source={"name": "ETOPO5"},
233
227
  hmin=5.0,
234
228
  )
235
229
 
@@ -267,7 +261,7 @@ def test_roundtrip_yaml(tmp_path):
267
261
  center_lon=0.0,
268
262
  center_lat=0.0,
269
263
  rot=0.0,
270
- topography_source="ETOPO5",
264
+ topography_source={"name": "ETOPO5"},
271
265
  hmin=5.0,
272
266
  )
273
267
 
@@ -300,7 +294,7 @@ def test_files_have_same_hash(tmp_path):
300
294
  center_lon=0.0,
301
295
  center_lat=0.0,
302
296
  rot=0.0,
303
- topography_source="ETOPO5",
297
+ topography_source={"name": "ETOPO5"},
304
298
  hmin=5.0,
305
299
  )
306
300
 
@@ -336,7 +330,8 @@ def test_from_yaml_missing_version(tmp_path):
336
330
  center_lon: -10
337
331
  center_lat: 61
338
332
  rot: -20
339
- topography_source: ETOPO5
333
+ topography_source:
334
+ name: ETOPO5
340
335
  hmin: 5.0
341
336
  """
342
337
  )
@@ -405,7 +400,8 @@ def test_from_yaml_version_mismatch(tmp_path, caplog):
405
400
  center_lon: -10
406
401
  center_lat: 61
407
402
  rot: -20
408
- topography_source: ETOPO5
403
+ topography_source:
404
+ name: ETOPO5
409
405
  hmin: 5.0
410
406
  """
411
407
  )
@@ -432,3 +428,105 @@ def test_from_yaml_version_mismatch(tmp_path, caplog):
432
428
 
433
429
  yaml_filepath = Path(yaml_filepath)
434
430
  yaml_filepath.unlink()
431
+
432
+
433
+ def test_invalid_theta_s_value():
434
+ """Test the validation of the theta_s value."""
435
+ with pytest.raises(ValueError):
436
+
437
+ Grid(
438
+ nx=2,
439
+ ny=2,
440
+ size_x=500,
441
+ size_y=1000,
442
+ center_lon=0,
443
+ center_lat=55,
444
+ rot=10,
445
+ N=3,
446
+ theta_s=11.0, # Invalid value, should be 0 < theta_s <= 10
447
+ theta_b=2.0,
448
+ hc=250.0,
449
+ )
450
+
451
+
452
+ def test_invalid_theta_b_value():
453
+ """Test the validation of the theta_b value."""
454
+ with pytest.raises(ValueError):
455
+ Grid(
456
+ nx=2,
457
+ ny=2,
458
+ size_x=500,
459
+ size_y=1000,
460
+ center_lon=0,
461
+ center_lat=55,
462
+ rot=10,
463
+ N=3,
464
+ theta_s=5.0,
465
+ theta_b=5.0, # Invalid value, should be 0 < theta_b <= 4
466
+ hc=250.0,
467
+ )
468
+
469
+
470
+ def test_update_vertical_coordinate():
471
+
472
+ grid = Grid(
473
+ nx=2, ny=2, size_x=500, size_y=1000, center_lon=0, center_lat=55, rot=10
474
+ )
475
+
476
+ assert grid.N == 100
477
+ assert grid.theta_s == 5.0
478
+ assert grid.theta_b == 2.0
479
+ assert grid.hc == 300.0
480
+ assert len(grid.ds.s_rho) == 100
481
+
482
+ grid.update_vertical_coordinate(N=3, theta_s=10.0, theta_b=1.0, hc=400.0)
483
+
484
+ assert grid.N == 3
485
+ assert grid.theta_s == 10.0
486
+ assert grid.theta_b == 1.0
487
+ assert grid.hc == 400.0
488
+ assert len(grid.ds.s_rho) == 3
489
+
490
+ grid.update_vertical_coordinate(N=5)
491
+
492
+ assert grid.N == 5
493
+ assert grid.theta_s == 10.0
494
+ assert grid.theta_b == 1.0
495
+ assert grid.hc == 400.0
496
+ assert len(grid.ds.s_rho) == 5
497
+
498
+ grid.update_vertical_coordinate()
499
+
500
+ assert grid.N == 5
501
+ assert grid.theta_s == 10.0
502
+ assert grid.theta_b == 1.0
503
+ assert grid.hc == 400.0
504
+ assert len(grid.ds.s_rho) == 5
505
+
506
+
507
+ def test_plot():
508
+ grid = Grid(
509
+ nx=2,
510
+ ny=2,
511
+ size_x=500,
512
+ size_y=1000,
513
+ center_lon=0,
514
+ center_lat=55,
515
+ rot=10,
516
+ N=3,
517
+ theta_s=5.0,
518
+ theta_b=2.0,
519
+ hc=250.0,
520
+ )
521
+ grid.plot_vertical_coordinate(s=-1)
522
+ grid.plot_vertical_coordinate(eta=0)
523
+ grid.plot_vertical_coordinate(xi=0)
524
+
525
+ with pytest.raises(ValueError, match="Exactly one of"):
526
+ grid.plot_vertical_coordinate(s=-1, eta=0)
527
+ with pytest.raises(ValueError, match="Exactly one of"):
528
+ grid.plot_vertical_coordinate(s=-1, xi=0)
529
+ with pytest.raises(ValueError, match="Exactly one of"):
530
+ grid.plot_vertical_coordinate(eta=-1, xi=0)
531
+ with pytest.raises(ValueError, match="Exactly one of"):
532
+ grid.plot_vertical_coordinate(eta=-1, xi=0, s=-1)
@@ -308,10 +308,9 @@ def test_from_yaml_missing_initial_conditions(tmp_path, use_dask):
308
308
  center_lon: -10
309
309
  center_lat: 61
310
310
  rot: -20
311
- topography_source: ETOPO5
312
- smooth_factor: 8
311
+ topography_source:
312
+ name: ETOPO5
313
313
  hmin: 5.0
314
- rmax: 0.2
315
314
  """
316
315
  )
317
316