roms-tools 2.6.0__py3-none-any.whl → 2.6.2__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 (613) hide show
  1. roms_tools/analysis/roms_output.py +218 -10
  2. roms_tools/analysis/utils.py +41 -9
  3. roms_tools/download.py +1 -0
  4. roms_tools/regrid.py +9 -2
  5. roms_tools/setup/boundary_forcing.py +92 -70
  6. roms_tools/setup/datasets.py +232 -272
  7. roms_tools/setup/initial_conditions.py +70 -34
  8. roms_tools/setup/river_forcing.py +20 -14
  9. roms_tools/setup/surface_forcing.py +19 -3
  10. roms_tools/setup/utils.py +221 -40
  11. roms_tools/tests/test_analysis/test_roms_output.py +55 -0
  12. roms_tools/tests/test_setup/test_boundary_forcing.py +119 -36
  13. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/.zattrs +14 -0
  14. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/.zgroup +3 -0
  15. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/.zmetadata +4456 -0
  16. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/ALK_ALT_CO2_east/.zarray +24 -0
  17. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/ALK_ALT_CO2_east/.zattrs +10 -0
  18. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/ALK_ALT_CO2_east/0.0.0 +0 -0
  19. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/ALK_ALT_CO2_north/.zarray +24 -0
  20. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/ALK_ALT_CO2_north/.zattrs +10 -0
  21. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/ALK_ALT_CO2_north/0.0.0 +0 -0
  22. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/ALK_ALT_CO2_south/.zarray +24 -0
  23. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/ALK_ALT_CO2_south/.zattrs +10 -0
  24. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/ALK_ALT_CO2_south/0.0.0 +0 -0
  25. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/ALK_ALT_CO2_west/.zarray +24 -0
  26. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/ALK_ALT_CO2_west/.zattrs +10 -0
  27. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/ALK_ALT_CO2_west/0.0.0 +0 -0
  28. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/ALK_east/.zarray +24 -0
  29. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/ALK_east/.zattrs +10 -0
  30. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/ALK_east/0.0.0 +0 -0
  31. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/ALK_north/.zarray +24 -0
  32. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/ALK_north/.zattrs +10 -0
  33. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/ALK_north/0.0.0 +0 -0
  34. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/ALK_south/.zarray +24 -0
  35. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/ALK_south/.zattrs +10 -0
  36. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/ALK_south/0.0.0 +0 -0
  37. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/ALK_west/.zarray +24 -0
  38. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/ALK_west/.zattrs +10 -0
  39. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/ALK_west/0.0.0 +0 -0
  40. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DIC_ALT_CO2_east/.zarray +24 -0
  41. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DIC_ALT_CO2_east/.zattrs +10 -0
  42. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DIC_ALT_CO2_east/0.0.0 +0 -0
  43. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DIC_ALT_CO2_north/.zarray +24 -0
  44. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DIC_ALT_CO2_north/.zattrs +10 -0
  45. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DIC_ALT_CO2_north/0.0.0 +0 -0
  46. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DIC_ALT_CO2_south/.zarray +24 -0
  47. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DIC_ALT_CO2_south/.zattrs +10 -0
  48. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DIC_ALT_CO2_south/0.0.0 +0 -0
  49. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DIC_ALT_CO2_west/.zarray +24 -0
  50. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DIC_ALT_CO2_west/.zattrs +10 -0
  51. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DIC_ALT_CO2_west/0.0.0 +0 -0
  52. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DIC_east/.zarray +24 -0
  53. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DIC_east/.zattrs +10 -0
  54. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DIC_east/0.0.0 +0 -0
  55. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DIC_north/.zarray +24 -0
  56. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DIC_north/.zattrs +10 -0
  57. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DIC_north/0.0.0 +0 -0
  58. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DIC_south/.zarray +24 -0
  59. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DIC_south/.zattrs +10 -0
  60. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DIC_south/0.0.0 +0 -0
  61. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DIC_west/.zarray +24 -0
  62. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DIC_west/.zattrs +10 -0
  63. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DIC_west/0.0.0 +0 -0
  64. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DOC_east/.zarray +24 -0
  65. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DOC_east/.zattrs +10 -0
  66. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DOC_east/0.0.0 +0 -0
  67. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DOC_north/.zarray +24 -0
  68. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DOC_north/.zattrs +10 -0
  69. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DOC_north/0.0.0 +0 -0
  70. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DOC_south/.zarray +24 -0
  71. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DOC_south/.zattrs +10 -0
  72. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DOC_south/0.0.0 +0 -0
  73. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DOC_west/.zarray +24 -0
  74. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DOC_west/.zattrs +10 -0
  75. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DOC_west/0.0.0 +0 -0
  76. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DOCr_east/.zarray +24 -0
  77. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DOCr_east/.zattrs +10 -0
  78. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DOCr_east/0.0.0 +0 -0
  79. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DOCr_north/.zarray +24 -0
  80. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DOCr_north/.zattrs +10 -0
  81. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DOCr_north/0.0.0 +0 -0
  82. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DOCr_south/.zarray +24 -0
  83. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DOCr_south/.zattrs +10 -0
  84. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DOCr_south/0.0.0 +0 -0
  85. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DOCr_west/.zarray +24 -0
  86. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DOCr_west/.zattrs +10 -0
  87. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DOCr_west/0.0.0 +0 -0
  88. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DON_east/.zarray +24 -0
  89. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DON_east/.zattrs +10 -0
  90. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DON_east/0.0.0 +0 -0
  91. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DON_north/.zarray +24 -0
  92. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DON_north/.zattrs +10 -0
  93. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DON_north/0.0.0 +0 -0
  94. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DON_south/.zarray +24 -0
  95. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DON_south/.zattrs +10 -0
  96. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DON_south/0.0.0 +0 -0
  97. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DON_west/.zarray +24 -0
  98. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DON_west/.zattrs +10 -0
  99. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DON_west/0.0.0 +0 -0
  100. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DONr_east/.zarray +24 -0
  101. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DONr_east/.zattrs +10 -0
  102. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DONr_east/0.0.0 +0 -0
  103. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DONr_north/.zarray +24 -0
  104. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DONr_north/.zattrs +10 -0
  105. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DONr_north/0.0.0 +0 -0
  106. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DONr_south/.zarray +24 -0
  107. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DONr_south/.zattrs +10 -0
  108. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DONr_south/0.0.0 +0 -0
  109. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DONr_west/.zarray +24 -0
  110. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DONr_west/.zattrs +10 -0
  111. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DONr_west/0.0.0 +0 -0
  112. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DOP_east/.zarray +24 -0
  113. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DOP_east/.zattrs +10 -0
  114. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DOP_east/0.0.0 +0 -0
  115. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DOP_north/.zarray +24 -0
  116. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DOP_north/.zattrs +10 -0
  117. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DOP_north/0.0.0 +0 -0
  118. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DOP_south/.zarray +24 -0
  119. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DOP_south/.zattrs +10 -0
  120. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DOP_south/0.0.0 +0 -0
  121. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DOP_west/.zarray +24 -0
  122. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DOP_west/.zattrs +10 -0
  123. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DOP_west/0.0.0 +0 -0
  124. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DOPr_east/.zarray +24 -0
  125. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DOPr_east/.zattrs +10 -0
  126. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DOPr_east/0.0.0 +0 -0
  127. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DOPr_north/.zarray +24 -0
  128. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DOPr_north/.zattrs +10 -0
  129. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DOPr_north/0.0.0 +0 -0
  130. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DOPr_south/.zarray +24 -0
  131. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DOPr_south/.zattrs +10 -0
  132. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DOPr_south/0.0.0 +0 -0
  133. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DOPr_west/.zarray +24 -0
  134. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DOPr_west/.zattrs +10 -0
  135. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/DOPr_west/0.0.0 +0 -0
  136. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/Fe_east/.zarray +24 -0
  137. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/Fe_east/.zattrs +10 -0
  138. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/Fe_east/0.0.0 +0 -0
  139. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/Fe_north/.zarray +24 -0
  140. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/Fe_north/.zattrs +10 -0
  141. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/Fe_north/0.0.0 +0 -0
  142. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/Fe_south/.zarray +24 -0
  143. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/Fe_south/.zattrs +10 -0
  144. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/Fe_south/0.0.0 +0 -0
  145. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/Fe_west/.zarray +24 -0
  146. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/Fe_west/.zattrs +10 -0
  147. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/Fe_west/0.0.0 +0 -0
  148. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/Lig_east/.zarray +24 -0
  149. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/Lig_east/.zattrs +10 -0
  150. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/Lig_east/0.0.0 +0 -0
  151. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/Lig_north/.zarray +24 -0
  152. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/Lig_north/.zattrs +10 -0
  153. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/Lig_north/0.0.0 +0 -0
  154. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/Lig_south/.zarray +24 -0
  155. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/Lig_south/.zattrs +10 -0
  156. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/Lig_south/0.0.0 +0 -0
  157. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/Lig_west/.zarray +24 -0
  158. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/Lig_west/.zattrs +10 -0
  159. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/Lig_west/0.0.0 +0 -0
  160. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/NH4_east/.zarray +24 -0
  161. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/NH4_east/.zattrs +10 -0
  162. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/NH4_east/0.0.0 +0 -0
  163. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/NH4_north/.zarray +24 -0
  164. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/NH4_north/.zattrs +10 -0
  165. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/NH4_north/0.0.0 +0 -0
  166. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/NH4_south/.zarray +24 -0
  167. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/NH4_south/.zattrs +10 -0
  168. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/NH4_south/0.0.0 +0 -0
  169. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/NH4_west/.zarray +24 -0
  170. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/NH4_west/.zattrs +10 -0
  171. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/NH4_west/0.0.0 +0 -0
  172. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/NO3_east/.zarray +24 -0
  173. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/NO3_east/.zattrs +10 -0
  174. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/NO3_east/0.0.0 +0 -0
  175. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/NO3_north/.zarray +24 -0
  176. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/NO3_north/.zattrs +10 -0
  177. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/NO3_north/0.0.0 +0 -0
  178. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/NO3_south/.zarray +24 -0
  179. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/NO3_south/.zattrs +10 -0
  180. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/NO3_south/0.0.0 +0 -0
  181. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/NO3_west/.zarray +24 -0
  182. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/NO3_west/.zattrs +10 -0
  183. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/NO3_west/0.0.0 +0 -0
  184. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/O2_east/.zarray +24 -0
  185. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/O2_east/.zattrs +10 -0
  186. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/O2_east/0.0.0 +0 -0
  187. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/O2_north/.zarray +24 -0
  188. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/O2_north/.zattrs +10 -0
  189. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/O2_north/0.0.0 +0 -0
  190. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/O2_south/.zarray +24 -0
  191. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/O2_south/.zattrs +10 -0
  192. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/O2_south/0.0.0 +0 -0
  193. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/O2_west/.zarray +24 -0
  194. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/O2_west/.zattrs +10 -0
  195. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/O2_west/0.0.0 +0 -0
  196. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/PO4_east/.zarray +24 -0
  197. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/PO4_east/.zattrs +10 -0
  198. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/PO4_east/0.0.0 +0 -0
  199. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/PO4_north/.zarray +24 -0
  200. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/PO4_north/.zattrs +10 -0
  201. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/PO4_north/0.0.0 +0 -0
  202. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/PO4_south/.zarray +24 -0
  203. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/PO4_south/.zattrs +10 -0
  204. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/PO4_south/0.0.0 +0 -0
  205. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/PO4_west/.zarray +24 -0
  206. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/PO4_west/.zattrs +10 -0
  207. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/PO4_west/0.0.0 +0 -0
  208. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/SiO3_east/.zarray +24 -0
  209. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/SiO3_east/.zattrs +10 -0
  210. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/SiO3_east/0.0.0 +0 -0
  211. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/SiO3_north/.zarray +24 -0
  212. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/SiO3_north/.zattrs +10 -0
  213. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/SiO3_north/0.0.0 +0 -0
  214. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/SiO3_south/.zarray +24 -0
  215. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/SiO3_south/.zattrs +10 -0
  216. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/SiO3_south/0.0.0 +0 -0
  217. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/SiO3_west/.zarray +24 -0
  218. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/SiO3_west/.zattrs +10 -0
  219. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/SiO3_west/0.0.0 +0 -0
  220. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/abs_time/.zarray +20 -0
  221. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/abs_time/.zattrs +8 -0
  222. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/abs_time/0 +0 -0
  223. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/bry_time/.zarray +20 -0
  224. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/bry_time/.zattrs +8 -0
  225. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/bry_time/0 +0 -0
  226. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatC_east/.zarray +24 -0
  227. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatC_east/.zattrs +10 -0
  228. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatC_east/0.0.0 +0 -0
  229. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatC_north/.zarray +24 -0
  230. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatC_north/.zattrs +10 -0
  231. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatC_north/0.0.0 +0 -0
  232. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatC_south/.zarray +24 -0
  233. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatC_south/.zattrs +10 -0
  234. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatC_south/0.0.0 +0 -0
  235. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatC_west/.zarray +24 -0
  236. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatC_west/.zattrs +10 -0
  237. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatC_west/0.0.0 +0 -0
  238. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatChl_east/.zarray +24 -0
  239. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatChl_east/.zattrs +10 -0
  240. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatChl_east/0.0.0 +0 -0
  241. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatChl_north/.zarray +24 -0
  242. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatChl_north/.zattrs +10 -0
  243. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatChl_north/0.0.0 +0 -0
  244. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatChl_south/.zarray +24 -0
  245. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatChl_south/.zattrs +10 -0
  246. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatChl_south/0.0.0 +0 -0
  247. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatChl_west/.zarray +24 -0
  248. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatChl_west/.zattrs +10 -0
  249. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatChl_west/0.0.0 +0 -0
  250. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatFe_east/.zarray +24 -0
  251. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatFe_east/.zattrs +10 -0
  252. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatFe_east/0.0.0 +0 -0
  253. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatFe_north/.zarray +24 -0
  254. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatFe_north/.zattrs +10 -0
  255. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatFe_north/0.0.0 +0 -0
  256. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatFe_south/.zarray +24 -0
  257. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatFe_south/.zattrs +10 -0
  258. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatFe_south/0.0.0 +0 -0
  259. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatFe_west/.zarray +24 -0
  260. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatFe_west/.zattrs +10 -0
  261. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatFe_west/0.0.0 +0 -0
  262. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatP_east/.zarray +24 -0
  263. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatP_east/.zattrs +10 -0
  264. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatP_east/0.0.0 +0 -0
  265. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatP_north/.zarray +24 -0
  266. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatP_north/.zattrs +10 -0
  267. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatP_north/0.0.0 +0 -0
  268. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatP_south/.zarray +24 -0
  269. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatP_south/.zattrs +10 -0
  270. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatP_south/0.0.0 +0 -0
  271. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatP_west/.zarray +24 -0
  272. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatP_west/.zattrs +10 -0
  273. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatP_west/0.0.0 +0 -0
  274. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatSi_east/.zarray +24 -0
  275. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatSi_east/.zattrs +10 -0
  276. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatSi_east/0.0.0 +0 -0
  277. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatSi_north/.zarray +24 -0
  278. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatSi_north/.zattrs +10 -0
  279. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatSi_north/0.0.0 +0 -0
  280. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatSi_south/.zarray +24 -0
  281. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatSi_south/.zattrs +10 -0
  282. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatSi_south/0.0.0 +0 -0
  283. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatSi_west/.zarray +24 -0
  284. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatSi_west/.zattrs +10 -0
  285. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diatSi_west/0.0.0 +0 -0
  286. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diazC_east/.zarray +24 -0
  287. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diazC_east/.zattrs +10 -0
  288. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diazC_east/0.0.0 +0 -0
  289. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diazC_north/.zarray +24 -0
  290. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diazC_north/.zattrs +10 -0
  291. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diazC_north/0.0.0 +0 -0
  292. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diazC_south/.zarray +24 -0
  293. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diazC_south/.zattrs +10 -0
  294. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diazC_south/0.0.0 +0 -0
  295. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diazC_west/.zarray +24 -0
  296. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diazC_west/.zattrs +10 -0
  297. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diazC_west/0.0.0 +0 -0
  298. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diazChl_east/.zarray +24 -0
  299. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diazChl_east/.zattrs +10 -0
  300. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diazChl_east/0.0.0 +0 -0
  301. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diazChl_north/.zarray +24 -0
  302. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diazChl_north/.zattrs +10 -0
  303. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diazChl_north/0.0.0 +0 -0
  304. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diazChl_south/.zarray +24 -0
  305. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diazChl_south/.zattrs +10 -0
  306. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diazChl_south/0.0.0 +0 -0
  307. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diazChl_west/.zarray +24 -0
  308. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diazChl_west/.zattrs +10 -0
  309. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diazChl_west/0.0.0 +0 -0
  310. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diazFe_east/.zarray +24 -0
  311. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diazFe_east/.zattrs +10 -0
  312. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diazFe_east/0.0.0 +0 -0
  313. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diazFe_north/.zarray +24 -0
  314. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diazFe_north/.zattrs +10 -0
  315. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diazFe_north/0.0.0 +0 -0
  316. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diazFe_south/.zarray +24 -0
  317. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diazFe_south/.zattrs +10 -0
  318. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diazFe_south/0.0.0 +0 -0
  319. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diazFe_west/.zarray +24 -0
  320. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diazFe_west/.zattrs +10 -0
  321. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diazFe_west/0.0.0 +0 -0
  322. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diazP_east/.zarray +24 -0
  323. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diazP_east/.zattrs +10 -0
  324. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diazP_east/0.0.0 +0 -0
  325. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diazP_north/.zarray +24 -0
  326. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diazP_north/.zattrs +10 -0
  327. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diazP_north/0.0.0 +0 -0
  328. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diazP_south/.zarray +24 -0
  329. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diazP_south/.zattrs +10 -0
  330. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diazP_south/0.0.0 +0 -0
  331. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diazP_west/.zarray +24 -0
  332. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diazP_west/.zattrs +10 -0
  333. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/diazP_west/0.0.0 +0 -0
  334. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/month/.zarray +20 -0
  335. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/month/.zattrs +6 -0
  336. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/month/0 +0 -0
  337. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spC_east/.zarray +24 -0
  338. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spC_east/.zattrs +10 -0
  339. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spC_east/0.0.0 +0 -0
  340. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spC_north/.zarray +24 -0
  341. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spC_north/.zattrs +10 -0
  342. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spC_north/0.0.0 +0 -0
  343. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spC_south/.zarray +24 -0
  344. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spC_south/.zattrs +10 -0
  345. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spC_south/0.0.0 +0 -0
  346. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spC_west/.zarray +24 -0
  347. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spC_west/.zattrs +10 -0
  348. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spC_west/0.0.0 +0 -0
  349. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spCaCO3_east/.zarray +24 -0
  350. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spCaCO3_east/.zattrs +10 -0
  351. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spCaCO3_east/0.0.0 +0 -0
  352. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spCaCO3_north/.zarray +24 -0
  353. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spCaCO3_north/.zattrs +10 -0
  354. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spCaCO3_north/0.0.0 +0 -0
  355. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spCaCO3_south/.zarray +24 -0
  356. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spCaCO3_south/.zattrs +10 -0
  357. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spCaCO3_south/0.0.0 +0 -0
  358. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spCaCO3_west/.zarray +24 -0
  359. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spCaCO3_west/.zattrs +10 -0
  360. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spCaCO3_west/0.0.0 +0 -0
  361. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spChl_east/.zarray +24 -0
  362. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spChl_east/.zattrs +10 -0
  363. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spChl_east/0.0.0 +0 -0
  364. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spChl_north/.zarray +24 -0
  365. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spChl_north/.zattrs +10 -0
  366. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spChl_north/0.0.0 +0 -0
  367. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spChl_south/.zarray +24 -0
  368. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spChl_south/.zattrs +10 -0
  369. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spChl_south/0.0.0 +0 -0
  370. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spChl_west/.zarray +24 -0
  371. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spChl_west/.zattrs +10 -0
  372. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spChl_west/0.0.0 +0 -0
  373. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spFe_east/.zarray +24 -0
  374. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spFe_east/.zattrs +10 -0
  375. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spFe_east/0.0.0 +0 -0
  376. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spFe_north/.zarray +24 -0
  377. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spFe_north/.zattrs +10 -0
  378. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spFe_north/0.0.0 +0 -0
  379. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spFe_south/.zarray +24 -0
  380. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spFe_south/.zattrs +10 -0
  381. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spFe_south/0.0.0 +0 -0
  382. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spFe_west/.zarray +24 -0
  383. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spFe_west/.zattrs +10 -0
  384. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spFe_west/0.0.0 +0 -0
  385. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spP_east/.zarray +24 -0
  386. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spP_east/.zattrs +10 -0
  387. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spP_east/0.0.0 +0 -0
  388. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spP_north/.zarray +24 -0
  389. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spP_north/.zattrs +10 -0
  390. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spP_north/0.0.0 +0 -0
  391. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spP_south/.zarray +24 -0
  392. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spP_south/.zattrs +10 -0
  393. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spP_south/0.0.0 +0 -0
  394. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spP_west/.zarray +24 -0
  395. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spP_west/.zattrs +10 -0
  396. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/spP_west/0.0.0 +0 -0
  397. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/zooC_east/.zarray +24 -0
  398. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/zooC_east/.zattrs +10 -0
  399. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/zooC_east/0.0.0 +0 -0
  400. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/zooC_north/.zarray +24 -0
  401. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/zooC_north/.zattrs +10 -0
  402. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/zooC_north/0.0.0 +0 -0
  403. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/zooC_south/.zarray +24 -0
  404. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/zooC_south/.zattrs +10 -0
  405. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/zooC_south/0.0.0 +0 -0
  406. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/zooC_west/.zarray +24 -0
  407. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/zooC_west/.zattrs +10 -0
  408. roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_unified_climatology.zarr/zooC_west/0.0.0 +0 -0
  409. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_unified_climatology.zarr/.zattrs +12 -0
  410. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_unified_climatology.zarr/.zgroup +3 -0
  411. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_unified_climatology.zarr/.zmetadata +424 -0
  412. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_unified_climatology.zarr/abs_time/.zarray +20 -0
  413. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_unified_climatology.zarr/abs_time/.zattrs +8 -0
  414. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_unified_climatology.zarr/abs_time/0 +0 -0
  415. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_unified_climatology.zarr/dust/.zarray +24 -0
  416. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_unified_climatology.zarr/dust/.zattrs +12 -0
  417. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_unified_climatology.zarr/dust/0.0.0 +0 -0
  418. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_unified_climatology.zarr/dust_time/.zarray +20 -0
  419. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_unified_climatology.zarr/dust_time/.zattrs +8 -0
  420. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_unified_climatology.zarr/dust_time/0 +0 -0
  421. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_unified_climatology.zarr/iron/.zarray +24 -0
  422. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_unified_climatology.zarr/iron/.zattrs +12 -0
  423. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_unified_climatology.zarr/iron/0.0.0 +0 -0
  424. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_unified_climatology.zarr/iron_time/.zarray +20 -0
  425. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_unified_climatology.zarr/iron_time/.zattrs +8 -0
  426. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_unified_climatology.zarr/iron_time/0 +0 -0
  427. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_unified_climatology.zarr/month/.zarray +20 -0
  428. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_unified_climatology.zarr/month/.zattrs +6 -0
  429. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_unified_climatology.zarr/month/0 +0 -0
  430. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_unified_climatology.zarr/nhy/.zarray +24 -0
  431. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_unified_climatology.zarr/nhy/.zattrs +10 -0
  432. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_unified_climatology.zarr/nhy/0.0.0 +0 -0
  433. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_unified_climatology.zarr/nhy_time/.zarray +20 -0
  434. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_unified_climatology.zarr/nhy_time/.zattrs +8 -0
  435. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_unified_climatology.zarr/nhy_time/0 +0 -0
  436. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_unified_climatology.zarr/nox/.zarray +24 -0
  437. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_unified_climatology.zarr/nox/.zattrs +10 -0
  438. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_unified_climatology.zarr/nox/0.0.0 +0 -0
  439. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_unified_climatology.zarr/nox_time/.zarray +20 -0
  440. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_unified_climatology.zarr/nox_time/.zattrs +8 -0
  441. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_unified_climatology.zarr/nox_time/0 +0 -0
  442. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_unified_climatology.zarr/pco2_air/.zarray +24 -0
  443. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_unified_climatology.zarr/pco2_air/.zattrs +12 -0
  444. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_unified_climatology.zarr/pco2_air/0.0.0 +0 -0
  445. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_unified_climatology.zarr/pco2_air_alt/.zarray +24 -0
  446. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_unified_climatology.zarr/pco2_air_alt/.zattrs +10 -0
  447. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_unified_climatology.zarr/pco2_air_alt/0.0.0 +0 -0
  448. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_unified_climatology.zarr/pco2_time/.zarray +20 -0
  449. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_unified_climatology.zarr/pco2_time/.zattrs +8 -0
  450. roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_unified_climatology.zarr/pco2_time/0 +0 -0
  451. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/.zattrs +12 -0
  452. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/.zgroup +3 -0
  453. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/.zmetadata +1600 -0
  454. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/ALK/.zarray +26 -0
  455. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/ALK/.zattrs +11 -0
  456. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/ALK/0.0.0.0 +0 -0
  457. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/ALK_ALT_CO2/.zarray +26 -0
  458. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/ALK_ALT_CO2/.zattrs +11 -0
  459. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/ALK_ALT_CO2/0.0.0.0 +0 -0
  460. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/Cs_r/.zarray +20 -0
  461. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/Cs_r/.zattrs +7 -0
  462. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/Cs_r/0 +0 -0
  463. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/Cs_w/.zarray +20 -0
  464. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/Cs_w/.zattrs +7 -0
  465. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/Cs_w/0 +0 -0
  466. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/DIC/.zarray +26 -0
  467. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/DIC/.zattrs +11 -0
  468. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/DIC/0.0.0.0 +0 -0
  469. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/DIC_ALT_CO2/.zarray +26 -0
  470. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/DIC_ALT_CO2/.zattrs +11 -0
  471. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/DIC_ALT_CO2/0.0.0.0 +0 -0
  472. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/DOC/.zarray +26 -0
  473. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/DOC/.zattrs +11 -0
  474. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/DOC/0.0.0.0 +0 -0
  475. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/DOCr/.zarray +26 -0
  476. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/DOCr/.zattrs +11 -0
  477. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/DOCr/0.0.0.0 +0 -0
  478. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/DON/.zarray +26 -0
  479. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/DON/.zattrs +11 -0
  480. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/DON/0.0.0.0 +0 -0
  481. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/DONr/.zarray +26 -0
  482. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/DONr/.zattrs +11 -0
  483. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/DONr/0.0.0.0 +0 -0
  484. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/DOP/.zarray +26 -0
  485. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/DOP/.zattrs +11 -0
  486. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/DOP/0.0.0.0 +0 -0
  487. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/DOPr/.zarray +26 -0
  488. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/DOPr/.zattrs +11 -0
  489. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/DOPr/0.0.0.0 +0 -0
  490. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/Fe/.zarray +26 -0
  491. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/Fe/.zattrs +11 -0
  492. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/Fe/0.0.0.0 +0 -0
  493. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/Lig/.zarray +26 -0
  494. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/Lig/.zattrs +11 -0
  495. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/Lig/0.0.0.0 +0 -0
  496. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/NH4/.zarray +26 -0
  497. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/NH4/.zattrs +11 -0
  498. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/NH4/0.0.0.0 +0 -0
  499. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/NO3/.zarray +26 -0
  500. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/NO3/.zattrs +11 -0
  501. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/NO3/0.0.0.0 +0 -0
  502. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/O2/.zarray +26 -0
  503. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/O2/.zattrs +11 -0
  504. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/O2/0.0.0.0 +0 -0
  505. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/PO4/.zarray +26 -0
  506. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/PO4/.zattrs +11 -0
  507. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/PO4/0.0.0.0 +0 -0
  508. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/SiO3/.zarray +26 -0
  509. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/SiO3/.zattrs +11 -0
  510. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/SiO3/0.0.0.0 +0 -0
  511. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/abs_time/.zarray +20 -0
  512. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/abs_time/.zattrs +8 -0
  513. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/abs_time/0 +0 -0
  514. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/diatC/.zarray +26 -0
  515. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/diatC/.zattrs +11 -0
  516. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/diatC/0.0.0.0 +0 -0
  517. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/diatChl/.zarray +26 -0
  518. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/diatChl/.zattrs +11 -0
  519. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/diatChl/0.0.0.0 +0 -0
  520. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/diatFe/.zarray +26 -0
  521. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/diatFe/.zattrs +11 -0
  522. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/diatFe/0.0.0.0 +0 -0
  523. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/diatP/.zarray +26 -0
  524. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/diatP/.zattrs +11 -0
  525. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/diatP/0.0.0.0 +0 -0
  526. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/diatSi/.zarray +26 -0
  527. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/diatSi/.zattrs +11 -0
  528. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/diatSi/0.0.0.0 +0 -0
  529. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/diazC/.zarray +26 -0
  530. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/diazC/.zattrs +11 -0
  531. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/diazC/0.0.0.0 +0 -0
  532. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/diazChl/.zarray +26 -0
  533. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/diazChl/.zattrs +11 -0
  534. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/diazChl/0.0.0.0 +0 -0
  535. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/diazFe/.zarray +26 -0
  536. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/diazFe/.zattrs +11 -0
  537. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/diazFe/0.0.0.0 +0 -0
  538. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/diazP/.zarray +26 -0
  539. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/diazP/.zattrs +11 -0
  540. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/diazP/0.0.0.0 +0 -0
  541. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/ocean_time/.zarray +20 -0
  542. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/ocean_time/.zattrs +7 -0
  543. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/ocean_time/0 +0 -0
  544. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/salt/.zarray +26 -0
  545. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/salt/.zattrs +11 -0
  546. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/salt/0.0.0.0 +0 -0
  547. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/spC/.zarray +26 -0
  548. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/spC/.zattrs +11 -0
  549. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/spC/0.0.0.0 +0 -0
  550. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/spCaCO3/.zarray +26 -0
  551. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/spCaCO3/.zattrs +11 -0
  552. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/spCaCO3/0.0.0.0 +0 -0
  553. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/spChl/.zarray +26 -0
  554. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/spChl/.zattrs +11 -0
  555. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/spChl/0.0.0.0 +0 -0
  556. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/spFe/.zarray +26 -0
  557. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/spFe/.zattrs +11 -0
  558. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/spFe/0.0.0.0 +0 -0
  559. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/spP/.zarray +26 -0
  560. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/spP/.zattrs +11 -0
  561. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/spP/0.0.0.0 +0 -0
  562. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/temp/.zarray +26 -0
  563. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/temp/.zattrs +11 -0
  564. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/temp/0.0.0.0 +0 -0
  565. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/u/.zarray +26 -0
  566. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/u/.zattrs +11 -0
  567. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/u/0.0.0.0 +0 -0
  568. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/ubar/.zarray +24 -0
  569. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/ubar/.zattrs +10 -0
  570. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/ubar/0.0.0 +0 -0
  571. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/v/.zarray +26 -0
  572. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/v/.zattrs +11 -0
  573. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/v/0.0.0.0 +0 -0
  574. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/vbar/.zarray +24 -0
  575. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/vbar/.zattrs +10 -0
  576. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/vbar/0.0.0 +0 -0
  577. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/w/.zarray +26 -0
  578. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/w/.zattrs +11 -0
  579. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/w/0.0.0.0 +0 -0
  580. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/zeta/.zarray +24 -0
  581. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/zeta/.zattrs +10 -0
  582. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/zeta/0.0.0 +0 -0
  583. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/zooC/.zarray +26 -0
  584. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/zooC/.zattrs +11 -0
  585. roms_tools/tests/test_setup/test_data/initial_conditions_with_unified_bgc_from_climatology.zarr/zooC/0.0.0.0 +0 -0
  586. roms_tools/tests/test_setup/test_data/river_forcing_no_climatology.zarr/.zmetadata +33 -3
  587. roms_tools/tests/test_setup/test_data/river_forcing_no_climatology.zarr/{river_location → river_fraction}/.zattrs +1 -1
  588. roms_tools/tests/test_setup/test_data/river_forcing_no_climatology.zarr/river_fraction/0.0 +0 -0
  589. roms_tools/tests/test_setup/test_data/{river_forcing_with_bgc.zarr/river_location → river_forcing_no_climatology.zarr/river_index}/.zattrs +1 -1
  590. roms_tools/tests/test_setup/test_data/river_forcing_no_climatology.zarr/river_index/0.0 +0 -0
  591. roms_tools/tests/test_setup/test_data/river_forcing_with_bgc.zarr/.zmetadata +33 -3
  592. roms_tools/tests/test_setup/test_data/river_forcing_with_bgc.zarr/river_fraction/.zarray +22 -0
  593. roms_tools/tests/test_setup/test_data/river_forcing_with_bgc.zarr/river_fraction/.zattrs +8 -0
  594. roms_tools/tests/test_setup/test_data/river_forcing_with_bgc.zarr/river_fraction/0.0 +0 -0
  595. roms_tools/tests/test_setup/test_data/river_forcing_with_bgc.zarr/river_index/.zarray +22 -0
  596. roms_tools/tests/test_setup/test_data/river_forcing_with_bgc.zarr/river_index/.zattrs +8 -0
  597. roms_tools/tests/test_setup/test_data/river_forcing_with_bgc.zarr/river_index/0.0 +0 -0
  598. roms_tools/tests/test_setup/test_datasets.py +2 -0
  599. roms_tools/tests/test_setup/test_initial_conditions.py +112 -25
  600. roms_tools/tests/test_setup/test_river_forcing.py +4 -3
  601. roms_tools/tests/test_setup/test_surface_forcing.py +67 -41
  602. roms_tools/tests/test_setup/test_validation.py +6 -0
  603. roms_tools/tests/test_vertical_coordinate.py +73 -0
  604. roms_tools/vertical_coordinate.py +6 -0
  605. {roms_tools-2.6.0.dist-info → roms_tools-2.6.2.dist-info}/METADATA +1 -3
  606. {roms_tools-2.6.0.dist-info → roms_tools-2.6.2.dist-info}/RECORD +611 -31
  607. roms_tools/tests/test_setup/test_data/river_forcing_no_climatology.zarr/river_location/0.0 +0 -0
  608. roms_tools/tests/test_setup/test_data/river_forcing_with_bgc.zarr/river_location/0.0 +0 -0
  609. /roms_tools/tests/test_setup/test_data/river_forcing_no_climatology.zarr/{river_location → river_fraction}/.zarray +0 -0
  610. /roms_tools/tests/test_setup/test_data/{river_forcing_with_bgc.zarr/river_location → river_forcing_no_climatology.zarr/river_index}/.zarray +0 -0
  611. {roms_tools-2.6.0.dist-info → roms_tools-2.6.2.dist-info}/WHEEL +0 -0
  612. {roms_tools-2.6.0.dist-info → roms_tools-2.6.2.dist-info}/licenses/LICENSE +0 -0
  613. {roms_tools-2.6.0.dist-info → roms_tools-2.6.2.dist-info}/top_level.txt +0 -0
@@ -9,11 +9,13 @@ from typing import Union, Optional
9
9
  from pathlib import Path
10
10
  import re
11
11
  import logging
12
+ import warnings
12
13
  from datetime import datetime, timedelta
13
14
  from roms_tools import Grid
14
15
  from roms_tools.vertical_coordinate import (
15
16
  compute_depth_coordinates,
16
17
  )
18
+ from roms_tools.utils import interpolate_from_rho_to_u, interpolate_from_rho_to_v
17
19
  from roms_tools.analysis.utils import _validate_plot_inputs, _generate_coordinate_range
18
20
 
19
21
 
@@ -415,6 +417,145 @@ class ROMSOutput:
415
417
  if save_path:
416
418
  plt.savefig(save_path, dpi=300, bbox_inches="tight")
417
419
 
420
+ def regrid(self, var_names=None, horizontal_resolution=None, depth_levels=None):
421
+ """Regrid the dataset both horizontally and vertically.
422
+
423
+ This method selects the specified variables, interpolates them onto a lat-lon-z horizontal grid. The horizontal target resolution and vertical target depth levels are either specified or inferred dynamically.
424
+
425
+ Parameters
426
+ ----------
427
+ var_names : list of str, optional
428
+ List of variable names to be regridded. If None, all variables in the dataset
429
+ are used.
430
+ horizontal_resolution : float, optional
431
+ Target horizontal resolution in degrees. If None, the nominal horizontal resolution is inferred from the grid.
432
+ depth_levels : xarray.DataArray, numpy.ndarray, list, optional
433
+ Target depth levels. If None, depth levels are determined dynamically.
434
+ If provided as a list or numpy array, it is safely converted to an `xarray.DataArray`.
435
+
436
+ Returns
437
+ -------
438
+ xarray.Dataset
439
+ The regridded dataset.
440
+ """
441
+
442
+ if var_names is None:
443
+ var_names = list(self.ds.data_vars)
444
+
445
+ # Check that all var_names exist in self.ds
446
+ missing_vars = [var for var in var_names if var not in self.ds.data_vars]
447
+ if missing_vars:
448
+ raise ValueError(
449
+ f"The following variables are not found in the dataset: {', '.join(missing_vars)}"
450
+ )
451
+
452
+ # Retain only the variables in var_names and drop others
453
+ ds = self.ds[var_names]
454
+
455
+ # Prepare lateral regrid
456
+ lat_deg = self.grid.ds["lat_rho"]
457
+ lon_deg = self.grid.ds["lon_rho"]
458
+ if self.grid.straddle:
459
+ lon_deg = xr.where(lon_deg > 180, lon_deg - 360, lon_deg)
460
+
461
+ if horizontal_resolution is None:
462
+ horizontal_resolution = self._infer_nominal_horizontal_resolution()
463
+ lons = _generate_coordinate_range(
464
+ lon_deg.min().values, lon_deg.max().values, horizontal_resolution
465
+ )
466
+ lons = xr.DataArray(lons, dims=["lon"], attrs={"units": "°E"})
467
+ lats = _generate_coordinate_range(
468
+ lat_deg.min().values, lat_deg.max().values, horizontal_resolution
469
+ )
470
+ lats = xr.DataArray(lats, dims=["lat"], attrs={"units": "°N"})
471
+ target_coords = {"lat": lats, "lon": lons}
472
+
473
+ # Prepare vertical regrid
474
+ if depth_levels is None:
475
+ depth_levels, _ = self._compute_exponential_depth_levels()
476
+
477
+ # Ensure depth_levels is an xarray.DataArray
478
+ if not isinstance(depth_levels, xr.DataArray):
479
+ depth_levels = xr.DataArray(
480
+ np.asarray(depth_levels),
481
+ dims=["depth"],
482
+ attrs={"long_name": "Depth", "units": "m"},
483
+ )
484
+
485
+ depth_levels = depth_levels.astype(np.float32)
486
+
487
+ # Initialize list to hold regridded datasets
488
+ regridded_datasets = []
489
+
490
+ for loc, dims in [
491
+ ("rho", ("eta_rho", "xi_rho")),
492
+ ("u", ("eta_rho", "xi_u")),
493
+ ("v", ("eta_v", "xi_rho")),
494
+ ]:
495
+ var_names_loc = [
496
+ var_name
497
+ for var_name in var_names
498
+ if all(dim in ds[var_name].dims for dim in dims)
499
+ ]
500
+ if var_names_loc:
501
+ ds_loc = (
502
+ ds[var_names_loc]
503
+ .rename({f"lat_{loc}": "lat", f"lon_{loc}": "lon"})
504
+ .where(self.grid.ds[f"mask_{loc}"])
505
+ )
506
+ self._get_depth_coordinates(depth_type="layer", locations=[loc])
507
+ layer_depth_loc = self.ds_depth_coords[f"layer_depth_{loc}"]
508
+ h_loc = self.grid.ds.h
509
+ if loc == "u":
510
+ h_loc = interpolate_from_rho_to_u(h_loc)
511
+ elif loc == "v":
512
+ h_loc = interpolate_from_rho_to_v(h_loc)
513
+
514
+ # Exclude the horizontal boundary cells since diagnostic variables may contain zeros there
515
+ ds_loc = ds_loc.isel({dims[0]: slice(1, -1), dims[1]: slice(1, -1)})
516
+ layer_depth_loc = layer_depth_loc.isel(
517
+ {dims[0]: slice(1, -1), dims[1]: slice(1, -1)}
518
+ )
519
+ h_loc = h_loc.isel({dims[0]: slice(1, -1), dims[1]: slice(1, -1)})
520
+
521
+ # Lateral regridding
522
+ lateral_regrid = LateralRegridFromROMS(ds_loc, target_coords)
523
+ ds_loc = lateral_regrid.apply(ds_loc)
524
+ layer_depth_loc = lateral_regrid.apply(layer_depth_loc)
525
+ h_loc = lateral_regrid.apply(h_loc)
526
+ # Vertical regridding
527
+ vertical_regrid = VerticalRegridFromROMS(ds_loc)
528
+ for var_name in var_names_loc:
529
+ if "s_rho" in ds_loc[var_name].dims:
530
+ attrs = ds_loc[var_name].attrs
531
+ regridded = vertical_regrid.apply(
532
+ ds_loc[var_name],
533
+ layer_depth_loc,
534
+ depth_levels,
535
+ mask_edges=False,
536
+ )
537
+ regridded = regridded.where(regridded.depth < h_loc)
538
+ ds_loc[var_name] = regridded
539
+ ds_loc[var_name].attrs = attrs
540
+
541
+ ds_loc = ds_loc.assign_coords({"depth": depth_levels})
542
+
543
+ # Collect regridded dataset for merging
544
+ regridded_datasets.append(ds_loc)
545
+
546
+ # Merge all regridded datasets
547
+ if regridded_datasets:
548
+ ds = xr.merge(regridded_datasets)
549
+
550
+ with warnings.catch_warnings():
551
+ warnings.filterwarnings("ignore", category=UserWarning)
552
+ ds = ds.rename({"abs_time": "time"}).set_index(time="time")
553
+ ds["time"].attrs = {"long_name": "Time"}
554
+ ds["lon"].attrs = {"long_name": "Longitude", "units": "Degrees East"}
555
+ ds["lat"].attrs = {"long_name": "Latitude", "units": "Degrees North"}
556
+
557
+ return ds
558
+
418
559
  def _get_depth_coordinates(self, depth_type="layer", locations=["rho"]):
419
560
  """Ensure depth coordinates are stored for a given location and depth type.
420
561
 
@@ -460,9 +601,11 @@ class ROMSOutput:
460
601
  zeta = 0
461
602
 
462
603
  for location in locations:
463
- self.ds_depth_coords[
464
- f"{depth_type}_depth_{location}"
465
- ] = compute_depth_coordinates(self.grid.ds, zeta, depth_type, location)
604
+ var_name = f"{depth_type}_depth_{location}"
605
+ if var_name not in self.ds_depth_coords:
606
+ self.ds_depth_coords[var_name] = compute_depth_coordinates(
607
+ self.grid.ds, zeta, depth_type, location
608
+ )
466
609
 
467
610
  def _load_model_output(self) -> xr.Dataset:
468
611
  """Load the model output."""
@@ -630,24 +773,40 @@ class ROMSOutput:
630
773
  return ds
631
774
 
632
775
  def _add_lat_lon_coords(self, ds: xr.Dataset) -> xr.Dataset:
633
- """Add latitude and longitude coordinates to the dataset.
776
+ """Add latitude and longitude coordinates to the dataset based on the grid.
634
777
 
635
- Adds "lat_rho" and "lon_rho" from the grid object to the dataset.
778
+ This method assigns latitude and longitude coordinates from the grid to the dataset.
779
+ It always adds the "lat_rho" and "lon_rho" coordinates. If the dataset contains the
780
+ "xi_u" or "eta_v" dimensions, it also adds the corresponding "lat_u", "lon_u",
781
+ "lat_v", and "lon_v" coordinates.
636
782
 
637
783
  Parameters
638
784
  ----------
639
785
  ds : xarray.Dataset
640
- Dataset to update.
786
+ Input dataset to which latitude and longitude coordinates will be added.
641
787
 
642
788
  Returns
643
789
  -------
644
790
  xarray.Dataset
645
- Dataset with "lat_rho" and "lon_rho" coordinates added.
791
+ Updated dataset with the appropriate latitude and longitude coordinates
792
+ assigned to "rho", "u", and "v" points if applicable.
646
793
  """
647
- ds = ds.assign_coords(
648
- {"lat_rho": self.grid.ds["lat_rho"], "lon_rho": self.grid.ds["lon_rho"]}
649
- )
794
+ coords_to_add = {
795
+ "lat_rho": self.grid.ds["lat_rho"],
796
+ "lon_rho": self.grid.ds["lon_rho"],
797
+ }
650
798
 
799
+ if "xi_u" in ds.dims:
800
+ coords_to_add.update(
801
+ {"lat_u": self.grid.ds["lat_u"], "lon_u": self.grid.ds["lon_u"]}
802
+ )
803
+ if "eta_v" in ds.dims:
804
+ coords_to_add.update(
805
+ {"lat_v": self.grid.ds["lat_v"], "lon_v": self.grid.ds["lon_v"]}
806
+ )
807
+
808
+ # Add all necessary coordinates in one go
809
+ ds = ds.assign_coords(coords_to_add)
651
810
  return ds
652
811
 
653
812
  def _infer_nominal_horizontal_resolution(self, lat=None):
@@ -693,3 +852,52 @@ class ROMSOutput:
693
852
  resolution_in_degrees = resolution_in_m / (meters_per_degree * np.cos(lat_rad))
694
853
 
695
854
  return resolution_in_degrees
855
+
856
+ def _compute_exponential_depth_levels(self, Nz=None, depth=None, h=None):
857
+ """Compute vertical grid center and face depths using an exponential profile.
858
+
859
+ Parameters
860
+ ----------
861
+ Nz : int, optional
862
+ Number of vertical levels. Defaults to `len(self.ds.s_rho)`.
863
+
864
+ depth : float, optional
865
+ Total depth of the domain. Defaults to `grid.ds.h.max().values`.
866
+
867
+ h : float, optional
868
+ Scaling parameter for the exponential profile. Defaults to `Nz / 4.5`.
869
+
870
+ Returns
871
+ -------
872
+ tuple of numpy.ndarray
873
+ Depth values at the vertical grid centers (`z_centers`) and grid faces (`z_faces`),
874
+ both rounded to two decimal places.
875
+ """
876
+ if Nz is None:
877
+ Nz = len(self.ds.s_rho)
878
+ if depth is None:
879
+ depth = self.grid.ds.h.max().values
880
+ if h is None:
881
+ h = Nz / 4.5
882
+
883
+ k = np.arange(1, Nz + 2)
884
+
885
+ # Define the exponential profile function
886
+ def exponential_profile(k, Nz, h):
887
+ return np.exp(k / h)
888
+
889
+ z_faces = np.vectorize(exponential_profile)(k, Nz, h)
890
+
891
+ # Normalize
892
+ z_faces -= z_faces[0]
893
+ z_faces *= depth / z_faces[-1]
894
+ z_faces[0] = 0.0
895
+
896
+ # Calculate center depths (average between adjacent face depths)
897
+ z_centers = (z_faces[:-1] + z_faces[1:]) / 2
898
+
899
+ # Round both z_faces and z_centers to two decimal places
900
+ z_faces = np.round(z_faces, 2)
901
+ z_centers = np.round(z_centers, 2)
902
+
903
+ return z_centers, z_faces
@@ -107,12 +107,13 @@ def _validate_plot_inputs(field, s, eta, xi, depth, lat, lon, include_boundary):
107
107
 
108
108
 
109
109
  def _generate_coordinate_range(min, max, resolution):
110
- """Generate an array of target latitude or longitude coordinates within a specified
111
- range.
110
+ """Generate an array of target coordinates (e.g., latitude or longitude) within a
111
+ specified range, with a resolution that is rounded to the nearest value of the form
112
+ `1/n` (or integer).
112
113
 
113
114
  This method generates an array of target coordinates between the provided `min` and `max`
114
- values, with a specified resolution (spacing) between each coordinate. Both `min` and `max`
115
- are included in the generated range.
115
+ values, ensuring that both `min` and `max` are included in the resulting range. The resolution
116
+ is rounded to the nearest fraction of the form `1/n` or an integer, based on the input.
116
117
 
117
118
  Parameters
118
119
  ----------
@@ -123,15 +124,46 @@ def _generate_coordinate_range(min, max, resolution):
123
124
  The maximum value (in degrees) of the coordinate range (inclusive).
124
125
 
125
126
  resolution : float
126
- The spacing (in degrees) between each coordinate in the array.
127
+ The spacing (in degrees) between each coordinate in the array. The resolution will
128
+ be rounded to the nearest value of the form `1/n` or an integer, depending on the size
129
+ of the resolution value.
127
130
 
128
131
  Returns
129
132
  -------
130
133
  numpy.ndarray
131
- An array of target coordinates generated from the specified range and resolution.
134
+ An array of target coordinates generated from the specified range, with the resolution
135
+ rounded to a suitable fraction (e.g., `1/n`) or integer, depending on the input resolution.
132
136
  """
133
137
 
134
- # Generate the array including both min and max values
135
- target = np.arange(min, max + resolution, resolution)
138
+ # Find the closest fraction of the form 1/n or integer to match the resolution
139
+ resolution_rounded = None
140
+ min_diff = float("inf") # Initialize the minimum difference as infinity
136
141
 
137
- return target
142
+ # Search for the best fraction or integer approximation to the resolution
143
+ for n in range(1, 1000): # Try fractions 1/n, where n ranges from 1 to 999
144
+ if resolution <= 1:
145
+ fraction = (
146
+ 1 / n
147
+ ) # For small resolutions (<= 1), consider fractions of the form 1/n
148
+ else:
149
+ fraction = n # For larger resolutions (>1), consider integers (n)
150
+
151
+ diff = abs(
152
+ fraction - resolution
153
+ ) # Calculate the difference between the fraction and the resolution
154
+
155
+ if diff < min_diff: # If the current fraction is a better approximation
156
+ min_diff = diff
157
+ resolution_rounded = fraction # Update the best fraction (or integer) found
158
+
159
+ # Adjust the start and end of the range to include integer values
160
+ start_int = np.floor(min) # Round the minimum value down to the nearest integer
161
+ end_int = np.ceil(max) # Round the maximum value up to the nearest integer
162
+
163
+ # Generate the array of target coordinates, including both the min and max values
164
+ target = np.arange(start_int, end_int + resolution_rounded, resolution_rounded)
165
+
166
+ # Truncate any values that exceed max (including small floating point errors)
167
+ target = target[target <= end_int + 1e-10]
168
+
169
+ return target.astype(np.float32)
roms_tools/download.py CHANGED
@@ -56,6 +56,7 @@ pup_test_data = pooch.create(
56
56
  "CESM_BGC_SURFACE_2012.nc": "3c4d156adca97909d0fac36bf50b99583ab37d8020d7a3e8511e92abf2331b38",
57
57
  "CESM_surface_global_test_data_climatology.nc": "a072757110c6f7b716a98f867688ef4195a5966741d2f368201ac24617254e35",
58
58
  "CESM_surface_global_test_data.nc": "874106ffbc8b1b220db09df1551bbb89d22439d795b4d1e5a24ee775e9a7bf6e",
59
+ "coarsened_UNIFIED_bgc_dataset.nc": "58b510dfd9125e8bfd92342af8cbf7c2639ef9a42c21f3ee74fc31b361e3750c",
59
60
  "grid_created_with_matlab.nc": "fd537ef8159fabb18e38495ec8d44e2fa1b7fb615fcb1417dd4c0e1bb5f4e41d",
60
61
  "etopo5_coarsened_and_shifted.nc": "9a5cb4b38c779d22ddb0ad069b298b9722db34ca85a89273eccca691e89e6f96",
61
62
  "srtm15_coarsened.nc": "48bc8f4beecfdca9c192b13f4cbeef1455f49d8261a82563aaec5757e100dff9",
roms_tools/regrid.py CHANGED
@@ -257,7 +257,7 @@ class VerticalRegridFromROMS:
257
257
  """
258
258
  self.grid = xgcm.Grid(ds, coords={"s_rho": {"center": "s_rho"}}, periodic=False)
259
259
 
260
- def apply(self, da, depth_coords, target_depth_levels):
260
+ def apply(self, da, depth_coords, target_depth_levels, mask_edges=True):
261
261
  """Applies vertical regridding from ROMS to the specified target depth levels.
262
262
 
263
263
  This method transforms the input data array `da` from the ROMS vertical coordinate (`s_rho`)
@@ -275,6 +275,9 @@ class VerticalRegridFromROMS:
275
275
  target_depth_levels : array-like
276
276
  The target depth levels to which the input data `da` will be regridded.
277
277
 
278
+ mask_edges: bool, optional
279
+ If activated, target values outside the range of depth_coords are masked with nan. Defaults to True.
280
+
278
281
  Returns
279
282
  -------
280
283
  xarray.DataArray
@@ -284,7 +287,11 @@ class VerticalRegridFromROMS:
284
287
  with warnings.catch_warnings():
285
288
  warnings.filterwarnings("ignore", category=FutureWarning, module="xgcm")
286
289
  transformed = self.grid.transform(
287
- da, "s_rho", target_depth_levels, target_data=depth_coords
290
+ da,
291
+ "s_rho",
292
+ target_depth_levels,
293
+ target_data=depth_coords,
294
+ mask_edges=mask_edges,
288
295
  )
289
296
 
290
297
  return transformed