@@ -2095,34 +2095,40 @@ def healpix_indexing_scheme(self, new_indexing_scheme, sort=False):
20952095 and new_indexing_scheme != indexing_scheme
20962096 ):
20972097 refinement_level = hp .get ("refinement_level" )
2098- if (
2099- indexing_scheme in ("nested" , "ring" )
2100- and refinement_level is None
2101- ):
2098+ if refinement_level is None :
21022099 raise ValueError (
21032100 f"Can't change HEALPix indexing scheme of { f !r} from "
2104- f"{ indexing_scheme !r} to { new_indexing_scheme !r} when "
2101+ f"{ indexing_scheme !r} to { new_indexing_scheme !r} : "
21052102 "refinement_level has not been set in the healpix grid "
21062103 "mapping coordinate reference"
21072104 )
21082105
2106+ if (
2107+ new_indexing_scheme in ("nested" , "ring" )
2108+ and np .array (refinement_level ).size > 1
2109+ ):
2110+ raise ValueError (
2111+ f"Can't change HEALPix indexing scheme of { f !r} from "
2112+ f"{ indexing_scheme !r} to { new_indexing_scheme !r} : "
2113+ "Multiple refinement levels are set in the healpix grid "
2114+ f"mapping coordinate reference: { refinement_level !r} "
2115+ )
2116+
21092117 # Update the Coordinate Reference
21102118 cr = hp ["grid_mapping_name:healpix" ]
21112119 cr .coordinate_conversion .set_parameter (
21122120 "indexing_scheme" , new_indexing_scheme
21132121 )
2114- if new_indexing_scheme == "nested_unique" :
2115- cr .coordinate_conversion .del_parameter ("refinement_level" )
2116- elif indexing_scheme == "nested_unique" :
2117- raise ValueError (
2118- f"Can't change HEALPix indexing scheme of { f !r} from "
2119- f"{ indexing_scheme !r} to { new_indexing_scheme !r} "
2120- )
21212122
21222123 # Change the HEALPix indices
21232124 from ..healpix import _healpix_indexing_scheme
21242125
2125- _healpix_indexing_scheme (healpix_index , hp , new_indexing_scheme )
2126+ _healpix_indexing_scheme (
2127+ healpix_index ,
2128+ indexing_scheme ,
2129+ new_indexing_scheme ,
2130+ refinement_level ,
2131+ )
21262132
21272133 if sort :
21282134 # Sort the HEALPix axis so that the HEALPix indices are
0 commit comments