Как определить имена осей в WCS
Я пытаюсь использовать WCS для простых линейных, не небесных осей. На самом деле это только координаты U,V, представляющие преобразование Фурье изображения.
import astropy.wcs as wcs
w=wcs.WCS(naxis=2)
w.wcs.axis_types[0]=0
w.wcs.axis_types[1]=0
w.wcs.ctype[0]='UU---SIN'
w.wcs.ctype[1]='VV---SIN'
print(w)
ww=w.deepcopy()
Читая документацию по axis_types, я указал, что первые две оси являются линейными (то есть не небесными). Однако, когда глубокая копия выполняется, я получаю ошибку:
astropy.wcs._wcs.InconsistentAxisTypesError: ERROR 4 in wcs_types() at line 2486 of file cextern/wcslib/C/wcs.c:
Unrecognized celestial type (UU---SIN in CTYPE1).
Что я делаю неправильно?
Спасибо Тим
3 ответа
Вместо UU---SIN
а также VV---SIN
Просто используйте UU
а также VV
, wcs
признает, что SIN
проекция указывает на небесную систему координат, но UU
а также VV
не описывать какую-либо небесную систему координат.
import astropy.wcs as wcs
w=wcs.WCS(naxis=2)
w.wcs.ctype[0]='UU'
w.wcs.ctype[1] = 'VV'
w.deepcopy()
Однако возникает вопрос о том, существует ли четко определенное соглашение для (предположительно в сетке?) Данных УФ в изображениях FITS.
Я полагаю, что AIPS все еще делает это, и я разочарован тем, что WCSLIB возражает. UU---SIN и т. Д. Кажется правильным способом описать то, что мы имеем в таких изображениях с сеткой. На самом деле FFT использует этот тип оси, в то время как UVIMG просто использует U и V.
Ах, я вижу, что axis_types является атрибутом и не может быть установлен таким образом. Это очевидно при попытке сделать: w.wcs.axis_types=[0,0]
, Все еще не уверен, как это сделать правильно.