Существует проекция карты, называемая Четырехсторонним сферическим кубом , которая используется в астрофизике для представления карт всего неба. Приятно, что пиксели находятся в пределах нескольких процентов от равных областей по всему небу, поэтому геометрические искажения уменьшаются.
По сути, небесный шар проецируется на куб, и каждая грань куба делится на пиксели; но вместо того, чтобы быть прямолинейной сеткой, границы строк и столбцов слегка изогнуты, так что каждый пиксель отображается в примерно равную по размеру область на сфере.
Пиксельная адресация довольно интересная. Предположим, у вас есть пиксель с координатами
X, Y на одной из граней куба. Если X имеет двоичное представление abcd, а Y - ABCD,
тогда адрес пикселя на этой грани чередуется по X и Y: aAbBcCdD. Так что ребин
Изображение в более крупные пиксели, все, что вам нужно сделать, это сдвинуть вправо на 2 бита, чтобы получить адрес пикселя в более низком разрешении.
С 32-битными адресами пикселей вы можете использовать 3 бита для представления грани куба и 28 бит для представления перемеженных координат X и Y в пределах этой грани. При этом разрешении каждый пиксель покрывает область размером около 20x20 угловых секунд, или около трети милиного квадрата (иш), поэтому его можно было бы использовать как своего рода технику хеширования географических или небесных координат.
Чтобы использовать это, вам нужно будет выполнить прямые преобразования (long, lat) или (RA, dec) в числа пикселей, и обратные преобразования, переходящие от номеров пикселей к (long, lat) или (RA, dec). И, конечно, есть тонны известных картографических проекций от координат изображения до (long, lat) и обратно.
Я не нашел никакого кода для этого за несколько минут поиска в Google - может быть, я смогу выкопать некоторый код, который я написал около 20 лет назад, когда работал над миссией по астрофизике EUVE, которая использовала эту проекцию для своей всесторонней карты обзора неба.