Skip to content

IO for fesom not converting n2 to two during open_grid - #1736

Draft
dylannelson wants to merge 1 commit into
mainfrom
n2-naming
Draft

IO for fesom not converting n2 to two during open_grid#1736
dylannelson wants to merge 1 commit into
mainfrom
n2-naming

Conversation

@dylannelson

Copy link
Copy Markdown
Member

contains test and explanation for how edge_node_connectivity and edge_face_connectivity interact with the trailing dimension "two"

Closes #1717

Overview

Expected Usage

import uxarray as ux

grid_path = "/path/to/grid.nc"
data_path = "/path/to/data.nc"

uxds = ux.open_dataset(grid_path, data_path)

# this is how you use this function
some_output = uxds.some_function()

# this is another way to use this function
other_output = uxds.some_function(some_param = True)

PR Checklist

General

  • An issue is created and linked
  • Added appropriate labels (if your uxarray repo permissions allow it)
  • Filled out Overview and Expected Usage (if applicable) sections

Testing & Benchmarking

  • There is adequate test coverage of changes from this PR (add new tests if needed)
  • If this PR could affect performance, ran ASV benchmarks and confirmed they show expected behavior (add a new benchmark if necessary)

Documentation and Examples

  • Docstrings updated with any function changes, and included in all new functions
  • User (public) functions added to docs/api.rst; internal (private) function names start with an underscore (_)
  • If touched any notebook files, cleared the output of all cells before committing
  • If added new notebook files, put into appropriate directories and referenced in appropriate files

AI Disclosure

AI Usage:

  • I have tested and take responsibility for all AI-generated content in my PR.

contains test and explanation for how edge_node_connectivity and edge_face_connectivity interact with the trailing dimension "two"
@dylannelson dylannelson added run-benchmark Run ASV benchmark workflow extra dims Handling of non-grid dimensions, such as time or altitude labels Sep 8, 2026
@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown

ASV Benchmarking

Benchmark Comparison Results

Benchmarks that have improved:

Change Before [38ff7ae] After [4dd01f6] Ratio Benchmark (Parameter)
- 626±10μs 535±10μs 0.85 mpas_ocean.NeighborhoodReduce.time_reduce('480km', 'mean')

Benchmarks that have stayed the same:

Change Before [38ff7ae] After [4dd01f6] Ratio Benchmark (Parameter)
189±2ms 193±0.8ms 1.02 bench_connectivity.Connectivity.time_edge_face('120km')
11.8±0.3ms 11.9±0.2ms 1.01 bench_connectivity.Connectivity.time_edge_face('480km')
190±1ms 192±1ms 1.01 bench_connectivity.Connectivity.time_edge_node('120km')
10.9±0.2ms 11.2±0.4ms 1.03 bench_connectivity.Connectivity.time_edge_node('480km')
189±2ms 190±1ms 1.00 bench_connectivity.Connectivity.time_face_edge('120km')
12.1±0.5ms 11.1±0.1ms 0.92 bench_connectivity.Connectivity.time_face_edge('480km')
866±10ms 876±6ms 1.01 bench_connectivity.Connectivity.time_face_face('120km')
55.0±0.2ms 56.0±1ms 1.02 bench_connectivity.Connectivity.time_face_face('480km')
65.6±2μs 66.3±2μs 1.01 bench_connectivity.Connectivity.time_face_node('120km')
66.4±2μs 63.3±2μs 0.95 bench_connectivity.Connectivity.time_face_node('480km')
415±10μs 424±10μs 1.02 bench_connectivity.Connectivity.time_n_nodes_per_face('120km')
353±8μs 356±10μs 1.01 bench_connectivity.Connectivity.time_n_nodes_per_face('480km')
190±0.7ms 190±1ms 1.00 bench_connectivity.Connectivity.time_node_edge('120km')
11.5±0.6ms 11.4±0.2ms 0.99 bench_connectivity.Connectivity.time_node_edge('480km')
78.8±1ms 77.8±0.5ms 0.99 bench_connectivity.Connectivity.time_node_face('120km')
5.00±0.06ms 5.08±0.03ms 1.02 bench_connectivity.Connectivity.time_node_face('480km')
8.76±0.2ms 8.38±0.2ms 0.96 face_bounds.FaceBounds.time_face_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/mpas/QU/oQU480.231010.nc'))
2.74±0.09ms 2.82±0.07ms 1.03 face_bounds.FaceBounds.time_face_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/scrip/outCSne8/outCSne8.nc'))
10.3±10s 9.46±10ms ~0.00 face_bounds.FaceBounds.time_face_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/ugrid/geoflow-small/grid.nc'))
2.16±0.02ms 2.15±0.03ms 1.00 face_bounds.FaceBounds.time_face_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/ugrid/quad-hexagon/grid.nc'))
57.3k 57.3k 1.00 face_bounds.FaceBounds.track_nbytes_face_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/mpas/QU/oQU480.231010.nc'))
12.3k 12.3k 1.00 face_bounds.FaceBounds.track_nbytes_face_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/scrip/outCSne8/outCSne8.nc'))
123k 123k 1.00 face_bounds.FaceBounds.track_nbytes_face_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/ugrid/geoflow-small/grid.nc'))
128 128 1.00 face_bounds.FaceBounds.track_nbytes_face_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/ugrid/quad-hexagon/grid.nc'))
1.27M 1.27M 1.00 face_bounds.FaceBounds.track_nbytes_grid_with_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/mpas/QU/oQU480.231010.nc'))
50.1k 50.1k 1.00 face_bounds.FaceBounds.track_nbytes_grid_with_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/scrip/outCSne8/outCSne8.nc'))
1.48M 1.48M 1.00 face_bounds.FaceBounds.track_nbytes_grid_with_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/ugrid/geoflow-small/grid.nc'))
712 712 1.00 face_bounds.FaceBounds.track_nbytes_grid_with_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/ugrid/quad-hexagon/grid.nc'))
1.97M 1.97M 1.00 face_bounds.FaceBounds.track_peakmem_face_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/mpas/QU/oQU480.231010.nc'))
1.97M 1.97M 1.00 face_bounds.FaceBounds.track_peakmem_face_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/scrip/outCSne8/outCSne8.nc'))
2.13M 2.14M 1.00 face_bounds.FaceBounds.track_peakmem_face_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/ugrid/geoflow-small/grid.nc'))
38.3k 38.3k 1.00 face_bounds.FaceBounds.track_peakmem_face_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/ugrid/quad-hexagon/grid.nc'))
336M 336M 1.00 face_bounds.FaceBoundsColdStartRss.peakmem_open_and_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/mpas/QU/oQU480.231010.nc'))
368M 366M 0.99 face_bounds.FaceBoundsColdStartRss.peakmem_open_and_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/scrip/outCSne8/outCSne8.nc'))
338M 338M 1.00 face_bounds.FaceBoundsColdStartRss.peakmem_open_and_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/ugrid/geoflow-small/grid.nc'))
337M 337M 1.00 face_bounds.FaceBoundsColdStartRss.peakmem_open_and_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/ugrid/quad-hexagon/grid.nc'))
1.18±0.02μs 1.22±0.01μs 1.03 geometry_kernels.AccucrossKernels.time_accucross
2.72±0.04μs 2.65±0.03μs 0.97 geometry_kernels.AccucrossKernels.time_accucross_pair
441±20ns 421±9ns 0.95 geometry_kernels.EFTPrimitives.time_acc_sqrt_re
430±20ns 431±9ns 1.00 geometry_kernels.EFTPrimitives.time_diff_of_products
381±5ns 411±10ns 1.08 geometry_kernels.EFTPrimitives.time_two_prod
381±20ns 391±30ns 1.03 geometry_kernels.EFTPrimitives.time_two_sum
1.48±0.02μs 1.51±0.01μs 1.02 geometry_kernels.GCAConstLatIntersection.time_accux_constlat_kernel
1.09±0.02μs 1.12±0.4μs 1.03 geometry_kernels.GCAConstLatIntersection.time_gca_const_lat_intersection
1.86±0.01μs 1.86±0.05μs 1.00 geometry_kernels.GCAConstLatIntersection.time_try_gca_const_lat_intersection
3.70±0.06μs 3.55±0.02μs 0.96 geometry_kernels.GCAGCAIntersection.time_accux_gca_kernel
1.39±0.01μs 1.37±0.04μs 0.98 geometry_kernels.GCAGCAIntersection.time_gca_gca_intersection
3.65±0.04μs 3.75±0.09μs 1.03 geometry_kernels.GCAGCAIntersection.time_try_gca_gca_intersection
54.4±0.7μs 51.0±1μs 0.94 geometry_kernels.OrientPredicates.time_on_minor_arc
1.13±0.06μs 1.11±0.07μs 0.98 geometry_kernels.OrientPredicates.time_orient3d_on_sphere
2.71±0.1ms 2.60±0ms 0.96 geometry_samebody.SameBodyConstLat.time_accux_dispatch
1.17±0.01ms 1.17±0ms 1.00 geometry_samebody.SameBodyConstLat.time_accux_kernel
1.72±0.01ms 1.74±0.01ms 1.01 geometry_samebody.SameBodyConstLat.time_fp64_dispatch
147±2μs 148±0.6μs 1.01 geometry_samebody.SameBodyConstLat.time_fp64_kernel
failed failed n/a geometry_samebody_gcagca.SameBodyGcaGca.time_accux_dispatch
failed failed n/a geometry_samebody_gcagca.SameBodyGcaGca.time_accux_kernel
failed failed n/a geometry_samebody_gcagca.SameBodyGcaGca.time_fp64_dispatch
failed failed n/a geometry_samebody_gcagca.SameBodyGcaGca.time_fp64_kernel
863±9ms 852±2ms 0.99 import.Imports.timeraw_import_uxarray
293M 293M 1.00 import.Imports.track_peakmem_import_uxarray
2.72±0.04ms 2.69±0.02ms 0.99 mpas_ocean.CheckNorm.time_check_norm('120km')
2.21±0.02ms 2.19±0ms 0.99 mpas_ocean.CheckNorm.time_check_norm('480km')
813±8ms 808±3ms 0.99 mpas_ocean.ConnectivityConstruction.time_face_face_connectivity('120km')
52.0±0.3ms 53.7±0.8ms 1.03 mpas_ocean.ConnectivityConstruction.time_face_face_connectivity('480km')
700±20μs 675±20μs 0.96 mpas_ocean.ConnectivityConstruction.time_n_nodes_per_face('120km')
588±6μs 579±10μs 0.98 mpas_ocean.ConnectivityConstruction.time_n_nodes_per_face('480km')
5.39±0.03ms 5.45±0.04ms 1.01 mpas_ocean.ConstructFaceLatLon.time_cartesian_averaging('120km')
3.87±0.05ms 3.85±0.05ms 1.00 mpas_ocean.ConstructFaceLatLon.time_cartesian_averaging('480km')
99.1±0.5ms 99.6±0.2ms 1.01 mpas_ocean.ConstructFaceLatLon.time_welzl('120km')
10.8±0.04ms 10.8±0.2ms 1.00 mpas_ocean.ConstructFaceLatLon.time_welzl('480km')
18.2±0.06ms 18.2±0.03ms 1.00 mpas_ocean.ConstructTreeStructures.time_ball_tree('120km')
1.04±0.01ms 1.03±0.01ms 0.99 mpas_ocean.ConstructTreeStructures.time_ball_tree('480km')
10.7±0.03ms 10.6±0.02ms 1.00 mpas_ocean.ConstructTreeStructures.time_kd_tree('120km')
697±20μs 707±10μs 1.01 mpas_ocean.ConstructTreeStructures.time_kd_tree('480km')
583±3ms 580±1ms 0.99 mpas_ocean.CrossSections.time_const_lat('120km', 1)
294±1ms 294±1ms 1.00 mpas_ocean.CrossSections.time_const_lat('120km', 2)
153±0.9ms 154±0.7ms 1.00 mpas_ocean.CrossSections.time_const_lat('120km', 4)
528±2ms 537±4ms 1.02 mpas_ocean.CrossSections.time_const_lat('480km', 1)
264±0.9ms 266±0.4ms 1.01 mpas_ocean.CrossSections.time_const_lat('480km', 2)
136±0.1ms 136±1ms 1.00 mpas_ocean.CrossSections.time_const_lat('480km', 4)
357M 356M 1.00 mpas_ocean.CrossSectionsPeakMem.peakmem_const_lat('120km', 1)
356M 357M 1.00 mpas_ocean.CrossSectionsPeakMem.peakmem_const_lat('120km', 2)
356M 356M 1.00 mpas_ocean.CrossSectionsPeakMem.peakmem_const_lat('120km', 4)
339M 340M 1.00 mpas_ocean.CrossSectionsPeakMem.peakmem_const_lat('480km', 1)
340M 340M 1.00 mpas_ocean.CrossSectionsPeakMem.peakmem_const_lat('480km', 2)
340M 340M 1.00 mpas_ocean.CrossSectionsPeakMem.peakmem_const_lat('480km', 4)
26.3±0.3ms 25.6±0.1ms 0.97 mpas_ocean.DualMesh.time_dual_mesh_construction('120km')
3.74±0.07ms 4.08±0.1ms 1.09 mpas_ocean.DualMesh.time_dual_mesh_construction('480km')
14.6±0.2ms 14.5±0.2ms 0.99 mpas_ocean.FaceAreas.time_face_areas('120km')
4.60±0.05ms 4.57±0.1ms 0.99 mpas_ocean.FaceAreas.time_face_areas('480km')
229k 229k 1.00 mpas_ocean.FaceAreas.track_nbytes_face_areas('120km')
14.3k 14.3k 1.00 mpas_ocean.FaceAreas.track_nbytes_face_areas('480km')
2.12M 2.12M 1.00 mpas_ocean.FaceAreas.track_peakmem_face_areas('120km')
729k 729k 1.00 mpas_ocean.FaceAreas.track_peakmem_face_areas('480km')
928±5ms 943±6ms 1.02 mpas_ocean.GeoDataFrame.time_to_geodataframe('120km', False)
51.4±1ms 51.9±0.9ms 1.01 mpas_ocean.GeoDataFrame.time_to_geodataframe('120km', True)
81.8±0.3ms 82.4±0.5ms 1.01 mpas_ocean.GeoDataFrame.time_to_geodataframe('480km', False)
5.45±0.1ms 5.68±0.1ms 1.04 mpas_ocean.GeoDataFrame.time_to_geodataframe('480km', True)
14.9±0.2ms 14.6±0.08ms 0.98 mpas_ocean.Gradient.time_gradient('120km')
2.17±0.03ms 2.17±0.03ms 1.00 mpas_ocean.Gradient.time_gradient('480km')
457k 457k 1.00 mpas_ocean.Gradient.track_nbytes_gradient('120km')
28.7k 28.7k 1.00 mpas_ocean.Gradient.track_nbytes_gradient('480km')
3.43M 3.43M 1.00 mpas_ocean.Gradient.track_peakmem_gradient('120km')
218k 218k 1.00 mpas_ocean.Gradient.track_peakmem_gradient('480km')
352M 352M 1.00 mpas_ocean.GradientColdStartRss.peakmem_gradient('120km')
331M 336M 1.01 mpas_ocean.GradientColdStartRss.peakmem_gradient('480km')
387±20μs 390±7μs 1.01 mpas_ocean.HoleEdgeIndices.time_construct_hole_edge_indices('120km')
196±10μs 195±9μs 0.99 mpas_ocean.HoleEdgeIndices.time_construct_hole_edge_indices('480km')
578±20μs 553±7μs 0.96 mpas_ocean.Integrate.time_integrate('120km')
494±9μs 487±10μs 0.99 mpas_ocean.Integrate.time_integrate('480km')
18.4M 18.4M 1.00 mpas_ocean.Integrate.track_nbytes_integrate('120km')
1.2M 1.2M 1.00 mpas_ocean.Integrate.track_nbytes_integrate('480km')
183±0.7ms 181±1ms 0.99 mpas_ocean.MatplotlibConversion.time_dataarray_to_polycollection('120km', 'exclude')
182±1ms 183±1ms 1.01 mpas_ocean.MatplotlibConversion.time_dataarray_to_polycollection('120km', 'include')
181±1ms 181±2ms 1.00 mpas_ocean.MatplotlibConversion.time_dataarray_to_polycollection('120km', 'split')
13.8±0.2ms 13.5±0.09ms 0.98 mpas_ocean.MatplotlibConversion.time_dataarray_to_polycollection('480km', 'exclude')
13.5±0.2ms 13.7±0.1ms 1.02 mpas_ocean.MatplotlibConversion.time_dataarray_to_polycollection('480km', 'include')
13.6±0.1ms 13.4±0.05ms 0.99 mpas_ocean.MatplotlibConversion.time_dataarray_to_polycollection('480km', 'split')
237±0.3ms 238±0.4ms 1.00 mpas_ocean.NeighborhoodBuild.time_build('120km', 1.0)
1.27±0s 1.27±0s 1.00 mpas_ocean.NeighborhoodBuild.time_build('120km', 15.0)
491±2ms 490±2ms 1.00 mpas_ocean.NeighborhoodBuild.time_build('120km', 5.0)
13.0±0.06ms 12.9±0.06ms 0.99 mpas_ocean.NeighborhoodBuild.time_build('480km', 1.0)
24.8±0.06ms 24.7±0.08ms 0.99 mpas_ocean.NeighborhoodBuild.time_build('480km', 15.0)
16.0±0.03ms 16.0±0.01ms 1.00 mpas_ocean.NeighborhoodBuild.time_build('480km', 5.0)
234±0.7ms 234±0.4ms 1.00 mpas_ocean.NeighborhoodBuild.time_query_radius('120km', 1.0)
1.24±0s 1.25±0s 1.00 mpas_ocean.NeighborhoodBuild.time_query_radius('120km', 15.0)
485±1ms 486±1ms 1.00 mpas_ocean.NeighborhoodBuild.time_query_radius('120km', 5.0)
12.6±0.03ms 12.6±0.05ms 1.00 mpas_ocean.NeighborhoodBuild.time_query_radius('480km', 1.0)
24.0±0.05ms 24.1±0.06ms 1.00 mpas_ocean.NeighborhoodBuild.time_query_radius('480km', 15.0)
15.6±0.04ms 15.6±0.03ms 1.00 mpas_ocean.NeighborhoodBuild.time_query_radius('480km', 5.0)
1.19 1.19 1.00 mpas_ocean.NeighborhoodBuild.track_mean_neighbors('120km', 1.0)
612.76 612.76 1.00 mpas_ocean.NeighborhoodBuild.track_mean_neighbors('120km', 15.0)
74.17 74.17 1.00 mpas_ocean.NeighborhoodBuild.track_mean_neighbors('120km', 5.0)
1.0 1.0 1.00 mpas_ocean.NeighborhoodBuild.track_mean_neighbors('480km', 1.0)
37.29 37.29 1.00 mpas_ocean.NeighborhoodBuild.track_mean_neighbors('480km', 15.0)
6.57 6.57 1.00 mpas_ocean.NeighborhoodBuild.track_mean_neighbors('480km', 5.0)
728k 728k 1.00 mpas_ocean.NeighborhoodBuild.track_nbytes_neighbors('120km', 1.0)
141M 141M 1.00 mpas_ocean.NeighborhoodBuild.track_nbytes_neighbors('120km', 15.0)
17.4M 17.4M 1.00 mpas_ocean.NeighborhoodBuild.track_nbytes_neighbors('120km', 5.0)
43k 43k 1.00 mpas_ocean.NeighborhoodBuild.track_nbytes_neighbors('480km', 1.0)
563k 563k 1.00 mpas_ocean.NeighborhoodBuild.track_nbytes_neighbors('480km', 15.0)
123k 123k 1.00 mpas_ocean.NeighborhoodBuild.track_nbytes_neighbors('480km', 5.0)
5.72M 5.72M 1.00 mpas_ocean.NeighborhoodBuild.track_peakmem_build('120km', 1.0)
145M 145M 1.00 mpas_ocean.NeighborhoodBuild.track_peakmem_build('120km', 15.0)
21.5M 21.5M 1.00 mpas_ocean.NeighborhoodBuild.track_peakmem_build('120km', 5.0)
362k 362k 1.00 mpas_ocean.NeighborhoodBuild.track_peakmem_build('480km', 1.0)
824k 825k 1.00 mpas_ocean.NeighborhoodBuild.track_peakmem_build('480km', 15.0)
384k 384k 1.00 mpas_ocean.NeighborhoodBuild.track_peakmem_build('480km', 5.0)
44.4±0.7ms 44.9±0.5ms 1.01 mpas_ocean.NeighborhoodDask.time_mean('120km', 'grid_chunks')
22.6±0.06ms 22.6±0.04ms 1.00 mpas_ocean.NeighborhoodDask.time_mean('120km', 'numpy')
41.1±0.6ms 40.3±0.7ms 0.98 mpas_ocean.NeighborhoodDask.time_mean('120km', 'time_chunks')
11.8±0.1ms 11.9±0.1ms 1.01 mpas_ocean.NeighborhoodDask.time_mean('480km', 'grid_chunks')
825±40μs 823±30μs 1.00 mpas_ocean.NeighborhoodDask.time_mean('480km', 'numpy')
8.57±0.1ms 8.57±0.1ms 1.00 mpas_ocean.NeighborhoodDask.time_mean('480km', 'time_chunks')
5.84M 5.83M 1.00 mpas_ocean.NeighborhoodDask.track_peakmem_mean('120km', 'grid_chunks')
2.75M 2.75M 1.00 mpas_ocean.NeighborhoodDask.track_peakmem_mean('120km', 'numpy')
5.68M 5.68M 1.00 mpas_ocean.NeighborhoodDask.track_peakmem_mean('120km', 'time_chunks')
646k 685k 1.06 mpas_ocean.NeighborhoodDask.track_peakmem_mean('480km', 'grid_chunks')
177k 177k 1.00 mpas_ocean.NeighborhoodDask.track_peakmem_mean('480km', 'numpy')
532k 528k 0.99 mpas_ocean.NeighborhoodDask.track_peakmem_mean('480km', 'time_chunks')
12.3±0s 12.3±0s 1.00 mpas_ocean.NeighborhoodReduce.time_dataset_reduce('120km', 'mean')
13.0±0s 13.0±0s 1.00 mpas_ocean.NeighborhoodReduce.time_dataset_reduce('120km', 'median')
225±0.7ms 225±0.2ms 1.00 mpas_ocean.NeighborhoodReduce.time_dataset_reduce('480km', 'mean')
232±0.3ms 232±0.5ms 1.00 mpas_ocean.NeighborhoodReduce.time_dataset_reduce('480km', 'median')
1.30±0s 1.31±0s 1.00 mpas_ocean.NeighborhoodReduce.time_neighborhood_reduce('120km', 'mean')
1.50±0s 1.50±0s 1.00 mpas_ocean.NeighborhoodReduce.time_neighborhood_reduce('120km', 'median')
25.0±0.04ms 25.0±0.04ms 1.00 mpas_ocean.NeighborhoodReduce.time_neighborhood_reduce('480km', 'mean')
26.5±0.06ms 26.5±0.07ms 1.00 mpas_ocean.NeighborhoodReduce.time_neighborhood_reduce('480km', 'median')
41.6±0.4ms 42.2±0.3ms 1.01 mpas_ocean.NeighborhoodReduce.time_reduce('120km', 'mean')
235±1ms 236±1ms 1.00 mpas_ocean.NeighborhoodReduce.time_reduce('120km', 'median')
1.98±0.02ms 1.91±0.04ms 0.96 mpas_ocean.NeighborhoodReduce.time_reduce('480km', 'median')
239k 239k 1.00 mpas_ocean.NeighborhoodReduce.track_peakmem_reduce('120km', 'mean')
245k 245k 1.00 mpas_ocean.NeighborhoodReduce.track_peakmem_reduce('120km', 'median')
19.4k 19.4k 1.00 mpas_ocean.NeighborhoodReduce.track_peakmem_reduce('480km', 'mean')
19.9k 19.9k 1.00 mpas_ocean.NeighborhoodReduce.track_peakmem_reduce('480km', 'median')
386±20μs 378±10μs 0.98 mpas_ocean.PointInPolygon.time_face_search_lonlat('120km')
366±6μs 380±9μs 1.04 mpas_ocean.PointInPolygon.time_face_search_lonlat('480km')
348±10μs 348±10μs 1.00 mpas_ocean.PointInPolygon.time_face_search_xyz('120km')
362±10μs 356±8μs 0.98 mpas_ocean.PointInPolygon.time_face_search_xyz('480km')
230±0.6ms 231±5ms 1.01 mpas_ocean.RemapDownsample.time_bilinear_remapping
283±3ms 285±7ms 1.01 mpas_ocean.RemapDownsample.time_inverse_distance_weighted_remapping
15.6±0.08ms 15.5±0.1ms 0.99 mpas_ocean.RemapDownsample.time_nearest_neighbor_remapping
1.32±0.01s 1.32±0s 1.00 mpas_ocean.RemapUpsample.time_bilinear_remapping
37.0±0.3ms 37.1±0.5ms 1.00 mpas_ocean.RemapUpsample.time_inverse_distance_weighted_remapping
13.0±0.1ms 13.2±0.3ms 1.01 mpas_ocean.RemapUpsample.time_nearest_neighbor_remapping
9.71±0.1ms 9.86±0.1ms 1.02 mpas_ocean.ZonalAverage.time_zonal_average('120km')
5.41±0.02ms 5.58±0.1ms 1.03 mpas_ocean.ZonalAverage.time_zonal_average('480km')
358M 358M 1.00 mpas_ocean.ZonalAveragePeakMem.peakmem_zonal_average('120km')
342M 341M 1.00 mpas_ocean.ZonalAveragePeakMem.peakmem_zonal_average('480km')
6.68±0.04ms 6.66±0.05ms 1.00 quad_hexagon.QuadHexagon.time_open_dataset
5.65±0.03ms 5.67±0.05ms 1.00 quad_hexagon.QuadHexagon.time_open_grid
408 408 1.00 quad_hexagon.QuadHexagon.track_nbytes_open_dataset
392 392 1.00 quad_hexagon.QuadHexagon.track_nbytes_open_grid
73.8k 73.8k 1.00 quad_hexagon.QuadHexagon.track_peakmem_open_dataset
73k 73k 1.00 quad_hexagon.QuadHexagon.track_peakmem_open_grid

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

extra dims Handling of non-grid dimensions, such as time or altitude run-benchmark Run ASV benchmark workflow

Projects

None yet

Development

Successfully merging this pull request may close these issues.

IO for fesom not converting n2 to two during open_grid

1 participant