This is basically what GeoData.jl does. It handles spatial data with named dimensions and various kinds of index. It also handles projections and combinations of array/index forward/reverse order and dimension permutations fairly seamlessly, and other spatial data properties like the differences between intervals and points, selecting subsets correctly for intervals indexed at the start or center of cells, and tracking of dimension bounds.
It also has tools for handling multi layered files like netcdf and hdf5 as stacks, and simulating that using stacks of tiffs so you can swap file types with the same code.
It’s currently in the process of registation, should be a day or two now.