UXARRAY / uxarray

Xarray-styled package for reading and directly operating on unstructured grid datasets following UGRID conventions
https://uxarray.readthedocs.io/
Apache License 2.0
139 stars 30 forks source link

Face area bug fix #837

Closed rajeeja closed 3 days ago

rajeeja commented 3 days ago

Fix #835

github-actions[bot] commented 3 days ago

ASV Benchmarking

Benchmark Comparison Results Benchmarks that have improved: | Change | Before [b0e06513] | After [ec3a7021] | Ratio | Benchmark (Parameter) | |----------|----------------------|---------------------|---------|-------------------------------------------------| | - | 387M | 301M | 0.78 | mpas_ocean.Integrate.peakmem_integrate('480km') | Benchmarks that have stayed the same: | Change | Before [b0e06513] | After [ec3a7021] | Ratio | Benchmark (Parameter) | |----------|----------------------|---------------------|---------|---------------------------------------------------------------------------------------------------------------------------------------| | | 239M | 240M | 1 | face_bounds.FaceBounds.peakmem_face_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/mpas/QU/oQU480.231010.nc')) | | | 300M | 300M | 1 | face_bounds.FaceBounds.peakmem_face_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/scrip/outCSne8/outCSne8.nc')) | | | 318M | 305M | 0.96 | face_bounds.FaceBounds.peakmem_face_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/ugrid/geoflow-small/grid.nc')) | | | 316M | 301M | 0.95 | face_bounds.FaceBounds.peakmem_face_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/ugrid/quad-hexagon/grid.nc')) | | | 14.1±0.1s | 14.1±0.02s | 1 | face_bounds.FaceBounds.time_face_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/mpas/QU/oQU480.231010.nc')) | | | 2.09±0.01s | 2.10±0.01s | 1 | face_bounds.FaceBounds.time_face_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/scrip/outCSne8/outCSne8.nc')) | | | 19.5±0.1s | 19.6±0.1s | 1 | face_bounds.FaceBounds.time_face_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/ugrid/geoflow-small/grid.nc')) | | | 73.2±0.8ms | 73.0±0.7ms | 1 | face_bounds.FaceBounds.time_face_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/ugrid/quad-hexagon/grid.nc')) | | | 1.64±0.01s | 1.65±0.01s | 1 | import.Imports.timeraw_import_uxarray | | | 5.81±0.1μs | 5.67±0.03μs | 0.98 | mpas_ocean.ConnectivityConstruction.time_n_nodes_per_face('120km') | | | 5.44±0.1μs | 5.42±0.04μs | 1 | mpas_ocean.ConnectivityConstruction.time_n_nodes_per_face('480km') | | | 370M | 370M | 1 | mpas_ocean.GeoDataFrame.peakmem_to_geodataframe('120km', False) | | | 349M | 349M | 1 | mpas_ocean.GeoDataFrame.peakmem_to_geodataframe('120km', True) | | | 320M | 320M | 1 | mpas_ocean.GeoDataFrame.peakmem_to_geodataframe('480km', False) | | | 319M | 319M | 1 | mpas_ocean.GeoDataFrame.peakmem_to_geodataframe('480km', True) | | | 1.22±0.01s | 1.22±0.01s | 1 | mpas_ocean.GeoDataFrame.time_to_geodataframe('120km', False) | | | 54.8±0.4ms | 54.3±0.3ms | 0.99 | mpas_ocean.GeoDataFrame.time_to_geodataframe('120km', True) | | | 96.1±2ms | 96.7±0.5ms | 1.01 | mpas_ocean.GeoDataFrame.time_to_geodataframe('480km', False) | | | 5.28±0.09ms | 5.33±0.07ms | 1.01 | mpas_ocean.GeoDataFrame.time_to_geodataframe('480km', True) | | | 256M | 256M | 1 | mpas_ocean.Gradient.peakmem_gradient('120km') | | | 233M | 233M | 1 | mpas_ocean.Gradient.peakmem_gradient('480km') | | | 2.66±0.03ms | 2.68±0.01ms | 1.01 | mpas_ocean.Gradient.time_gradient('120km') | | | 286±6μs | 282±0.9μs | 0.99 | mpas_ocean.Gradient.time_gradient('480km') | | | 320M | 322M | 1.01 | mpas_ocean.Integrate.peakmem_integrate('120km') | | | 176±1ms | 177±0.9ms | 1 | mpas_ocean.Integrate.time_integrate('120km') | | | 11.8±0.03ms | 11.8±0.1ms | 1 | mpas_ocean.Integrate.time_integrate('480km') | | | 231M | 231M | 1 | quad_hexagon.QuadHexagon.peakmem_open_dataset | | | 228M | 228M | 1 | quad_hexagon.QuadHexagon.peakmem_open_grid | | | 6.70±0.1ms | 6.57±0.04ms | 0.98 | quad_hexagon.QuadHexagon.time_open_dataset | | | 5.64±0.02ms | 5.65±0.01ms | 1 | quad_hexagon.QuadHexagon.time_open_grid |