roms-tools 1.4.1__py3-none-any.whl → 1.5.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.
- roms_tools/_version.py +1 -1
- roms_tools/setup/boundary_forcing.py +350 -166
- roms_tools/setup/datasets.py +57 -74
- roms_tools/setup/download.py +3 -6
- roms_tools/setup/fill.py +46 -18
- roms_tools/setup/grid.py +74 -113
- roms_tools/setup/initial_conditions.py +209 -76
- roms_tools/setup/regrid.py +198 -0
- roms_tools/setup/surface_forcing.py +167 -80
- roms_tools/setup/tides.py +135 -67
- roms_tools/setup/topography.py +9 -17
- roms_tools/setup/utils.py +251 -77
- roms_tools/setup/vertical_coordinate.py +4 -6
- roms_tools/tests/test_setup/test_boundary_forcing.py +6 -13
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/.zattrs +1 -1
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/.zmetadata +1 -1
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/ALK_ALT_CO2_east/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/ALK_ALT_CO2_north/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/ALK_ALT_CO2_south/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/ALK_ALT_CO2_west/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/ALK_east/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/ALK_north/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/ALK_south/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/ALK_west/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DIC_ALT_CO2_east/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DIC_ALT_CO2_north/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DIC_ALT_CO2_south/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DIC_ALT_CO2_west/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DIC_east/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DIC_north/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DIC_south/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DIC_west/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DOC_east/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DOC_north/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DOC_south/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DOC_west/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DOCr_east/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DOCr_north/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DOCr_south/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DOCr_west/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DON_east/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DON_north/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DON_south/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DON_west/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DONr_east/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DONr_north/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DONr_south/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DONr_west/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DOP_east/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DOP_north/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DOP_south/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DOP_west/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DOPr_east/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DOPr_north/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DOPr_south/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/DOPr_west/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/Fe_east/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/Fe_north/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/Fe_south/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/Fe_west/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/Lig_east/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/Lig_north/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/Lig_south/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/Lig_west/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/NH4_east/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/NH4_north/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/NH4_south/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/NH4_west/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/NO3_east/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/NO3_north/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/NO3_south/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/NO3_west/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/O2_east/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/O2_north/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/O2_south/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/O2_west/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/PO4_east/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/PO4_north/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/PO4_south/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/PO4_west/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/SiO3_east/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/SiO3_north/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/SiO3_south/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/SiO3_west/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diatC_east/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diatC_north/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diatC_south/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diatC_west/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diatChl_east/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diatChl_north/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diatChl_south/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diatChl_west/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diatFe_east/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diatFe_north/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diatFe_south/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diatFe_west/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diatP_east/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diatP_north/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diatP_south/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diatP_west/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diatSi_east/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diatSi_north/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diatSi_south/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diatSi_west/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diazC_east/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diazC_north/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diazC_south/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diazC_west/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diazChl_east/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diazChl_north/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diazChl_south/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diazChl_west/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diazFe_east/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diazFe_north/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diazFe_south/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diazFe_west/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diazP_east/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diazP_north/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diazP_south/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/diazP_west/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/spC_east/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/spC_north/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/spC_south/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/spC_west/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/spCaCO3_east/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/spCaCO3_north/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/spCaCO3_south/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/spCaCO3_west/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/spChl_east/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/spChl_north/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/spChl_south/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/spChl_west/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/spFe_east/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/spFe_north/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/spFe_south/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/spFe_west/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/spP_east/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/spP_north/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/spP_south/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/spP_west/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/zooC_east/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/zooC_north/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/zooC_south/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_boundary_forcing_from_climatology.zarr/zooC_west/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_surface_forcing.zarr/.zattrs +1 -1
- roms_tools/tests/test_setup/test_data/bgc_surface_forcing.zarr/.zmetadata +1 -1
- roms_tools/tests/test_setup/test_data/bgc_surface_forcing.zarr/pco2_air_alt/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_climatology.zarr/.zattrs +1 -1
- roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_climatology.zarr/.zmetadata +1 -1
- roms_tools/tests/test_setup/test_data/bgc_surface_forcing_from_climatology.zarr/pco2_air_alt/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/boundary_forcing.zarr/.zattrs +1 -1
- roms_tools/tests/test_setup/test_data/boundary_forcing.zarr/.zmetadata +1 -1
- roms_tools/tests/test_setup/test_data/boundary_forcing.zarr/salt_east/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/boundary_forcing.zarr/salt_north/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/boundary_forcing.zarr/salt_south/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/boundary_forcing.zarr/salt_west/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/boundary_forcing.zarr/temp_east/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/boundary_forcing.zarr/temp_north/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/boundary_forcing.zarr/temp_south/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/boundary_forcing.zarr/temp_west/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/boundary_forcing.zarr/u_east/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/boundary_forcing.zarr/u_north/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/boundary_forcing.zarr/u_south/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/boundary_forcing.zarr/u_west/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/boundary_forcing.zarr/ubar_east/0.0 +0 -0
- roms_tools/tests/test_setup/test_data/boundary_forcing.zarr/ubar_north/0.0 +0 -0
- roms_tools/tests/test_setup/test_data/boundary_forcing.zarr/ubar_south/0.0 +0 -0
- roms_tools/tests/test_setup/test_data/boundary_forcing.zarr/ubar_west/0.0 +0 -0
- roms_tools/tests/test_setup/test_data/boundary_forcing.zarr/v_east/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/boundary_forcing.zarr/v_north/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/boundary_forcing.zarr/v_south/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/boundary_forcing.zarr/v_west/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/boundary_forcing.zarr/vbar_east/0.0 +0 -0
- roms_tools/tests/test_setup/test_data/boundary_forcing.zarr/vbar_north/0.0 +0 -0
- roms_tools/tests/test_setup/test_data/boundary_forcing.zarr/vbar_south/0.0 +0 -0
- roms_tools/tests/test_setup/test_data/boundary_forcing.zarr/vbar_west/0.0 +0 -0
- roms_tools/tests/test_setup/test_data/boundary_forcing.zarr/zeta_east/0.0 +0 -0
- roms_tools/tests/test_setup/test_data/boundary_forcing.zarr/zeta_south/0.0 +0 -0
- roms_tools/tests/test_setup/test_data/grid.zarr/.zattrs +2 -2
- roms_tools/tests/test_setup/test_data/grid.zarr/.zmetadata +2 -62
- roms_tools/tests/test_setup/test_data/grid_that_straddles_dateline.zarr/.zattrs +2 -2
- roms_tools/tests/test_setup/test_data/grid_that_straddles_dateline.zarr/.zmetadata +2 -62
- roms_tools/tests/test_setup/test_data/initial_conditions_with_bgc_from_climatology.zarr/.zattrs +1 -1
- roms_tools/tests/test_setup/test_data/initial_conditions_with_bgc_from_climatology.zarr/.zmetadata +1 -1
- roms_tools/tests/test_setup/test_data/initial_conditions_with_bgc_from_climatology.zarr/ALK/0.0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/initial_conditions_with_bgc_from_climatology.zarr/ALK_ALT_CO2/0.0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/initial_conditions_with_bgc_from_climatology.zarr/DIC/0.0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/initial_conditions_with_bgc_from_climatology.zarr/DIC_ALT_CO2/0.0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/initial_conditions_with_bgc_from_climatology.zarr/DOC/0.0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/initial_conditions_with_bgc_from_climatology.zarr/DOCr/0.0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/initial_conditions_with_bgc_from_climatology.zarr/DON/0.0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/initial_conditions_with_bgc_from_climatology.zarr/DONr/0.0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/initial_conditions_with_bgc_from_climatology.zarr/DOP/0.0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/initial_conditions_with_bgc_from_climatology.zarr/DOPr/0.0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/initial_conditions_with_bgc_from_climatology.zarr/Fe/0.0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/initial_conditions_with_bgc_from_climatology.zarr/Lig/0.0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/initial_conditions_with_bgc_from_climatology.zarr/NH4/0.0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/initial_conditions_with_bgc_from_climatology.zarr/NO3/0.0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/initial_conditions_with_bgc_from_climatology.zarr/O2/0.0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/initial_conditions_with_bgc_from_climatology.zarr/PO4/0.0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/initial_conditions_with_bgc_from_climatology.zarr/SiO3/0.0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/initial_conditions_with_bgc_from_climatology.zarr/diatC/0.0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/initial_conditions_with_bgc_from_climatology.zarr/diatChl/0.0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/initial_conditions_with_bgc_from_climatology.zarr/diatFe/0.0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/initial_conditions_with_bgc_from_climatology.zarr/diatP/0.0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/initial_conditions_with_bgc_from_climatology.zarr/diatSi/0.0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/initial_conditions_with_bgc_from_climatology.zarr/diazC/0.0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/initial_conditions_with_bgc_from_climatology.zarr/diazChl/0.0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/initial_conditions_with_bgc_from_climatology.zarr/diazFe/0.0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/initial_conditions_with_bgc_from_climatology.zarr/diazP/0.0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/initial_conditions_with_bgc_from_climatology.zarr/salt/0.0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/initial_conditions_with_bgc_from_climatology.zarr/spC/0.0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/initial_conditions_with_bgc_from_climatology.zarr/spCaCO3/0.0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/initial_conditions_with_bgc_from_climatology.zarr/spChl/0.0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/initial_conditions_with_bgc_from_climatology.zarr/spFe/0.0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/initial_conditions_with_bgc_from_climatology.zarr/spP/0.0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/initial_conditions_with_bgc_from_climatology.zarr/temp/0.0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/initial_conditions_with_bgc_from_climatology.zarr/u/0.0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/initial_conditions_with_bgc_from_climatology.zarr/ubar/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/initial_conditions_with_bgc_from_climatology.zarr/v/0.0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/initial_conditions_with_bgc_from_climatology.zarr/vbar/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/initial_conditions_with_bgc_from_climatology.zarr/zeta/0.0.0 +0 -0
- roms_tools/tests/test_setup/test_data/initial_conditions_with_bgc_from_climatology.zarr/zooC/0.0.0.0 +0 -0
- roms_tools/tests/test_setup/test_datasets.py +8 -18
- roms_tools/tests/test_setup/test_fill.py +43 -14
- roms_tools/tests/test_setup/test_grid.py +9 -9
- roms_tools/tests/test_setup/test_initial_conditions.py +4 -7
- roms_tools/tests/test_setup/test_regrid.py +59 -0
- roms_tools/tests/test_setup/test_surface_forcing.py +74 -56
- roms_tools/tests/test_setup/test_tides.py +6 -10
- roms_tools/tests/test_setup/test_topography.py +2 -4
- roms_tools/tests/test_setup/test_vertical_coordinate.py +2 -6
- roms_tools/tests/test_utils.py +30 -30
- roms_tools/utils.py +6 -7
- {roms_tools-1.4.1.dist-info → roms_tools-1.5.0.dist-info}/METADATA +2 -2
- {roms_tools-1.4.1.dist-info → roms_tools-1.5.0.dist-info}/RECORD +239 -250
- roms_tools/setup/mixins.py +0 -231
- roms_tools/tests/test_setup/test_data/grid.zarr/lat_psi/.zarray +0 -22
- roms_tools/tests/test_setup/test_data/grid.zarr/lat_psi/.zattrs +0 -8
- roms_tools/tests/test_setup/test_data/grid.zarr/lat_psi/0.0 +0 -0
- roms_tools/tests/test_setup/test_data/grid.zarr/lon_psi/.zarray +0 -22
- roms_tools/tests/test_setup/test_data/grid.zarr/lon_psi/.zattrs +0 -8
- roms_tools/tests/test_setup/test_data/grid.zarr/lon_psi/0.0 +0 -0
- roms_tools/tests/test_setup/test_data/grid_that_straddles_dateline.zarr/lat_psi/.zarray +0 -22
- roms_tools/tests/test_setup/test_data/grid_that_straddles_dateline.zarr/lat_psi/.zattrs +0 -8
- roms_tools/tests/test_setup/test_data/grid_that_straddles_dateline.zarr/lat_psi/0.0 +0 -0
- roms_tools/tests/test_setup/test_data/grid_that_straddles_dateline.zarr/lon_psi/.zarray +0 -22
- roms_tools/tests/test_setup/test_data/grid_that_straddles_dateline.zarr/lon_psi/.zattrs +0 -8
- roms_tools/tests/test_setup/test_data/grid_that_straddles_dateline.zarr/lon_psi/0.0 +0 -0
- {roms_tools-1.4.1.dist-info → roms_tools-1.5.0.dist-info}/LICENSE +0 -0
- {roms_tools-1.4.1.dist-info → roms_tools-1.5.0.dist-info}/WHEEL +0 -0
- {roms_tools-1.4.1.dist-info → roms_tools-1.5.0.dist-info}/top_level.txt +0 -0
roms_tools/setup/grid.py
CHANGED
|
@@ -21,29 +21,28 @@ RADIUS_OF_EARTH = 6371315.0 # in m
|
|
|
21
21
|
|
|
22
22
|
@dataclass(frozen=True, kw_only=True)
|
|
23
23
|
class Grid:
|
|
24
|
-
"""
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
The default is 0, which means that the x-direction of the grid is aligned with lines of constant latitude.
|
|
24
|
+
"""A single ROMS grid.
|
|
25
|
+
|
|
26
|
+
Used for creating, plotting, and then saving a new ROMS domain grid.
|
|
27
|
+
|
|
28
|
+
Parameters
|
|
29
|
+
----------
|
|
30
|
+
nx : int
|
|
31
|
+
Number of grid points in the x-direction.
|
|
32
|
+
ny : int
|
|
33
|
+
Number of grid points in the y-direction.
|
|
34
|
+
size_x : float
|
|
35
|
+
Domain size in the x-direction (in kilometers).
|
|
36
|
+
size_y : float
|
|
37
|
+
Domain size in the y-direction (in kilometers).
|
|
38
|
+
center_lon : float
|
|
39
|
+
Longitude of grid center.
|
|
40
|
+
center_lat : float
|
|
41
|
+
Latitude of grid center.
|
|
42
|
+
rot : float, optional
|
|
43
|
+
Rotation of grid x-direction from lines of constant latitude, measured in degrees.
|
|
44
|
+
Positive values represent a counterclockwise rotation.
|
|
45
|
+
The default is 0, which means that the x-direction of the grid is aligned with lines of constant latitude.
|
|
47
46
|
N : int, optional
|
|
48
47
|
The number of vertical levels. The default is 100.
|
|
49
48
|
theta_s : float, optional
|
|
@@ -58,44 +57,10 @@ class Grid:
|
|
|
58
57
|
hmin : float, optional
|
|
59
58
|
The minimum ocean depth (in meters). The default is 5.0.
|
|
60
59
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
ny : int
|
|
66
|
-
Number of grid points in the y-direction.
|
|
67
|
-
size_x : float
|
|
68
|
-
Domain size in the x-direction (in kilometers).
|
|
69
|
-
size_y : float
|
|
70
|
-
Domain size in the y-direction (in kilometers).
|
|
71
|
-
center_lon : float
|
|
72
|
-
Longitude of grid center.
|
|
73
|
-
center_lat : float
|
|
74
|
-
Latitude of grid center.
|
|
75
|
-
rot : float
|
|
76
|
-
Rotation of grid x-direction from lines of constant latitude.
|
|
77
|
-
N : int
|
|
78
|
-
The number of vertical levels.
|
|
79
|
-
theta_s : float
|
|
80
|
-
The surface control parameter.
|
|
81
|
-
theta_b : float
|
|
82
|
-
The bottom control parameter.
|
|
83
|
-
hc : float
|
|
84
|
-
The critical depth (in meters).
|
|
85
|
-
topography_source : str
|
|
86
|
-
Data source used for the topography.
|
|
87
|
-
hmin : float
|
|
88
|
-
Minimum ocean depth (in meters).
|
|
89
|
-
ds : xr.Dataset
|
|
90
|
-
The xarray Dataset containing the grid data.
|
|
91
|
-
straddle : bool
|
|
92
|
-
Indicates if the Greenwich meridian (0° longitude) intersects the domain.
|
|
93
|
-
`True` if it does, `False` otherwise.
|
|
94
|
-
|
|
95
|
-
Raises
|
|
96
|
-
------
|
|
97
|
-
ValueError
|
|
98
|
-
If you try to create a grid with domain size larger than 20000 km.
|
|
60
|
+
Raises
|
|
61
|
+
------
|
|
62
|
+
ValueError
|
|
63
|
+
If you try to create a grid with domain size larger than 20000 km.
|
|
99
64
|
"""
|
|
100
65
|
|
|
101
66
|
nx: int
|
|
@@ -147,8 +112,8 @@ class Grid:
|
|
|
147
112
|
)
|
|
148
113
|
|
|
149
114
|
def update_topography_and_mask(self, hmin, topography_source="ETOPO5") -> None:
|
|
150
|
-
"""
|
|
151
|
-
|
|
115
|
+
"""Update the grid dataset by adding or overwriting the topography and land/sea
|
|
116
|
+
mask.
|
|
152
117
|
|
|
153
118
|
This method processes the topography data and generates a land/sea mask.
|
|
154
119
|
It applies several steps, including interpolating topography, smoothing
|
|
@@ -176,8 +141,7 @@ class Grid:
|
|
|
176
141
|
object.__setattr__(self, "hmin", hmin)
|
|
177
142
|
|
|
178
143
|
def _straddle(self) -> None:
|
|
179
|
-
"""
|
|
180
|
-
Check if the Greenwich meridian goes through the domain.
|
|
144
|
+
"""Check if the Greenwich meridian goes through the domain.
|
|
181
145
|
|
|
182
146
|
This method sets the `straddle` attribute to `True` if the Greenwich meridian
|
|
183
147
|
(0° longitude) intersects the domain defined by `lon_rho`. Otherwise, it sets
|
|
@@ -196,9 +160,8 @@ class Grid:
|
|
|
196
160
|
object.__setattr__(self, "straddle", False)
|
|
197
161
|
|
|
198
162
|
def _coarsen(self):
|
|
199
|
-
"""
|
|
200
|
-
|
|
201
|
-
fine-resoluion grid variables. The coarsening is by a factor of two.
|
|
163
|
+
"""Update the grid by adding grid variables that are coarsened versions of the
|
|
164
|
+
original fine-resoluion grid variables. The coarsening is by a factor of two.
|
|
202
165
|
|
|
203
166
|
The specific variables being coarsened are:
|
|
204
167
|
- `lon_rho` -> `lon_coarse`: Longitude at rho points.
|
|
@@ -249,8 +212,7 @@ class Grid:
|
|
|
249
212
|
self.ds[coarse_var].attrs["units"] = self.ds[fine_var].attrs["units"]
|
|
250
213
|
|
|
251
214
|
def update_vertical_coordinate(self, N, theta_s, theta_b, hc) -> None:
|
|
252
|
-
"""
|
|
253
|
-
Create vertical coordinate variables for the ROMS grid.
|
|
215
|
+
"""Create vertical coordinate variables for the ROMS grid.
|
|
254
216
|
|
|
255
217
|
This method computes the S-coordinate stretching curves and depths
|
|
256
218
|
at various grid points (rho, u, v) using the specified parameters.
|
|
@@ -353,8 +315,7 @@ class Grid:
|
|
|
353
315
|
object.__setattr__(self, "N", N)
|
|
354
316
|
|
|
355
317
|
def plot(self, bathymetry: bool = False) -> None:
|
|
356
|
-
"""
|
|
357
|
-
Plot the grid.
|
|
318
|
+
"""Plot the grid.
|
|
358
319
|
|
|
359
320
|
Parameters
|
|
360
321
|
----------
|
|
@@ -365,7 +326,6 @@ class Grid:
|
|
|
365
326
|
-------
|
|
366
327
|
None
|
|
367
328
|
This method does not return any value. It generates and displays a plot.
|
|
368
|
-
|
|
369
329
|
"""
|
|
370
330
|
|
|
371
331
|
if bathymetry:
|
|
@@ -396,19 +356,20 @@ class Grid:
|
|
|
396
356
|
eta=None,
|
|
397
357
|
xi=None,
|
|
398
358
|
) -> None:
|
|
399
|
-
"""
|
|
400
|
-
Plot the vertical coordinate system for a given eta-, xi-, or s-slice.
|
|
359
|
+
"""Plot the vertical coordinate system for a given eta-, xi-, or s-slice.
|
|
401
360
|
|
|
402
361
|
Parameters
|
|
403
362
|
----------
|
|
404
363
|
varname : str, optional
|
|
405
364
|
The vertical coordinate field to plot. Options include:
|
|
365
|
+
|
|
406
366
|
- "layer_depth_rho": Layer depth at rho-points.
|
|
407
367
|
- "layer_depth_u": Layer depth at u-points.
|
|
408
368
|
- "layer_depth_v": Layer depth at v-points.
|
|
409
369
|
- "interface_depth_rho": Interface depth at rho-points.
|
|
410
370
|
- "interface_depth_u": Interface depth at u-points.
|
|
411
371
|
- "interface_depth_v": Interface depth at v-points.
|
|
372
|
+
|
|
412
373
|
s: int, optional
|
|
413
374
|
The s-index to plot. Default is None.
|
|
414
375
|
eta : int, optional
|
|
@@ -526,17 +487,19 @@ class Grid:
|
|
|
526
487
|
def save(
|
|
527
488
|
self, filepath: Union[str, Path], np_eta: int = None, np_xi: int = None
|
|
528
489
|
) -> None:
|
|
529
|
-
"""
|
|
530
|
-
Save the grid information to a netCDF4 file.
|
|
490
|
+
"""Save the grid information to a netCDF4 file.
|
|
531
491
|
|
|
532
492
|
This method supports saving the dataset in two modes:
|
|
533
493
|
|
|
534
|
-
|
|
535
|
-
|
|
494
|
+
1. **Single File Mode (default)**:
|
|
495
|
+
|
|
496
|
+
If both `np_eta` and `np_xi` are `None`, the entire dataset is saved as a single netCDF4 file
|
|
497
|
+
with the base filename specified by `filepath.nc`.
|
|
498
|
+
|
|
499
|
+
2. **Partitioned Mode**:
|
|
536
500
|
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
- The files are saved as `filepath.0.nc`, `filepath.1.nc`, ..., where the numbering corresponds to the partition index.
|
|
501
|
+
- If either `np_eta` or `np_xi` is specified, the dataset is divided into spatial tiles along the eta-axis and xi-axis.
|
|
502
|
+
- Each spatial tile is saved as a separate netCDF4 file.
|
|
540
503
|
|
|
541
504
|
Parameters
|
|
542
505
|
----------
|
|
@@ -571,8 +534,7 @@ class Grid:
|
|
|
571
534
|
|
|
572
535
|
@classmethod
|
|
573
536
|
def from_file(cls, filepath: Union[str, Path]) -> "Grid":
|
|
574
|
-
"""
|
|
575
|
-
Create a Grid instance from an existing file.
|
|
537
|
+
"""Create a Grid instance from an existing file.
|
|
576
538
|
|
|
577
539
|
Parameters
|
|
578
540
|
----------
|
|
@@ -686,8 +648,8 @@ class Grid:
|
|
|
686
648
|
return grid
|
|
687
649
|
|
|
688
650
|
def to_yaml(self, filepath: Union[str, Path]) -> None:
|
|
689
|
-
"""
|
|
690
|
-
|
|
651
|
+
"""Export the parameters of the class to a YAML file, including the version of
|
|
652
|
+
roms-tools.
|
|
691
653
|
|
|
692
654
|
Parameters
|
|
693
655
|
----------
|
|
@@ -721,8 +683,7 @@ class Grid:
|
|
|
721
683
|
|
|
722
684
|
@classmethod
|
|
723
685
|
def from_yaml(cls, filepath: Union[str, Path]) -> "Grid":
|
|
724
|
-
"""
|
|
725
|
-
Create an instance of the class from a YAML file.
|
|
686
|
+
"""Create an instance of the class from a YAML file.
|
|
726
687
|
|
|
727
688
|
Parameters
|
|
728
689
|
----------
|
|
@@ -915,7 +876,7 @@ def _make_initial_lon_lat_ds(size_x, size_y, nx, ny):
|
|
|
915
876
|
|
|
916
877
|
|
|
917
878
|
def _rotate(lon, lat, lonu, latu, lonv, latv, lonq, latq, rot):
|
|
918
|
-
"""Rotate grid counterclockwise relative to surface of Earth by rot degrees"""
|
|
879
|
+
"""Rotate grid counterclockwise relative to surface of Earth by rot degrees."""
|
|
919
880
|
|
|
920
881
|
(lon, lat) = _rot_sphere(lon, lat, rot)
|
|
921
882
|
(lonu, latu) = _rot_sphere(lonu, latu, rot)
|
|
@@ -1055,7 +1016,8 @@ def _tra_sphere(lon, lat, tra):
|
|
|
1055
1016
|
|
|
1056
1017
|
|
|
1057
1018
|
def _compute_coordinate_metrics(lon, lonu, latu, lonv, latv):
|
|
1058
|
-
"""Compute the curvilinear coordinate metrics pn and pm, defined as 1/grid
|
|
1019
|
+
"""Compute the curvilinear coordinate metrics pn and pm, defined as 1/grid
|
|
1020
|
+
spacing."""
|
|
1059
1021
|
|
|
1060
1022
|
# pm = 1/dx
|
|
1061
1023
|
pmu = gc_dist(lonu[:, :-1], latu[:, :-1], lonu[:, 1:], latu[:, 1:])
|
|
@@ -1096,7 +1058,7 @@ def gc_dist(lon1, lat1, lon2, lat2):
|
|
|
1096
1058
|
|
|
1097
1059
|
|
|
1098
1060
|
def _compute_angle(lon, lonu, latu, lonq):
|
|
1099
|
-
"""Compute angles of local grid positive x-axis relative to east"""
|
|
1061
|
+
"""Compute angles of local grid positive x-axis relative to east."""
|
|
1100
1062
|
|
|
1101
1063
|
dellat = latu[:, 1:] - latu[:, :-1]
|
|
1102
1064
|
dellon = lonu[:, 1:] - lonu[:, :-1]
|
|
@@ -1166,16 +1128,16 @@ def _create_grid_ds(
|
|
|
1166
1128
|
dims=["eta_v", "xi_rho"],
|
|
1167
1129
|
attrs={"long_name": "latitude of v-points", "units": "degrees North"},
|
|
1168
1130
|
)
|
|
1169
|
-
lon_q = xr.Variable(
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
)
|
|
1174
|
-
lat_q = xr.Variable(
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
)
|
|
1131
|
+
# lon_q = xr.Variable(
|
|
1132
|
+
# data=lonq * 180 / np.pi,
|
|
1133
|
+
# dims=["eta_psi", "xi_psi"],
|
|
1134
|
+
# attrs={"long_name": "longitude of psi-points", "units": "degrees East"},
|
|
1135
|
+
# )
|
|
1136
|
+
# lat_q = xr.Variable(
|
|
1137
|
+
# data=latq * 180 / np.pi,
|
|
1138
|
+
# dims=["eta_psi", "xi_psi"],
|
|
1139
|
+
# attrs={"long_name": "latitude of psi-points", "units": "degrees North"},
|
|
1140
|
+
# )
|
|
1179
1141
|
|
|
1180
1142
|
ds = ds.assign_coords(
|
|
1181
1143
|
{
|
|
@@ -1185,8 +1147,8 @@ def _create_grid_ds(
|
|
|
1185
1147
|
"lon_u": lon_u,
|
|
1186
1148
|
"lat_v": lat_v,
|
|
1187
1149
|
"lon_v": lon_v,
|
|
1188
|
-
"lat_psi": lat_q,
|
|
1189
|
-
"lon_psi": lon_q,
|
|
1150
|
+
# "lat_psi": lat_q,
|
|
1151
|
+
# "lon_psi": lon_q,
|
|
1190
1152
|
}
|
|
1191
1153
|
)
|
|
1192
1154
|
|
|
@@ -1250,8 +1212,7 @@ def _add_global_metadata(ds, size_x, size_y, center_lon, center_lat, rot):
|
|
|
1250
1212
|
|
|
1251
1213
|
|
|
1252
1214
|
def _f2c(f):
|
|
1253
|
-
"""
|
|
1254
|
-
Coarsen input xarray DataArray f in both x- and y-direction.
|
|
1215
|
+
"""Coarsen input xarray DataArray f in both x- and y-direction.
|
|
1255
1216
|
|
|
1256
1217
|
Parameters
|
|
1257
1218
|
----------
|
|
@@ -1274,8 +1235,7 @@ def _f2c(f):
|
|
|
1274
1235
|
|
|
1275
1236
|
|
|
1276
1237
|
def _f2c_xdir(f):
|
|
1277
|
-
"""
|
|
1278
|
-
Coarsen input xarray DataArray f in x-direction.
|
|
1238
|
+
"""Coarsen input xarray DataArray f in x-direction.
|
|
1279
1239
|
|
|
1280
1240
|
Parameters
|
|
1281
1241
|
----------
|
|
@@ -1305,12 +1265,13 @@ def _f2c_xdir(f):
|
|
|
1305
1265
|
|
|
1306
1266
|
|
|
1307
1267
|
def _add_lat_lon_at_velocity_points(ds, straddle):
|
|
1308
|
-
"""
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
|
|
1268
|
+
"""Adds latitude and longitude coordinates at velocity points (u and v points) to
|
|
1269
|
+
the dataset. This function computes approximate latitude and longitude values at u
|
|
1270
|
+
and v velocity points based on the rho points (cell centers). If the grid straddles
|
|
1271
|
+
the Greenwich meridian, it adjusts the longitudes to avoid jumps from 360 to 0
|
|
1272
|
+
degrees. The computed coordinates are added to the dataset as new variables with
|
|
1273
|
+
appropriate metadata.
|
|
1274
|
+
|
|
1314
1275
|
Parameters
|
|
1315
1276
|
----------
|
|
1316
1277
|
ds : xarray.Dataset
|