РА, выраженный в градусах

Используя пакет Python Skyfield, я подумал, что смогу получить RA, выраженный в градусах, просто выполнив ra.degrees, но получаю следующее сообщение

этот угол обычно выражается в часах, а не в градусах; если вы все равно хотите использовать степени, используйте атрибут_degrees

Я пробовал несколько вещей, но не могу найти решение. Кто-нибудь может мне помочь?

Я запускаю v1.37, Python 3.27. Я использовал твой трюк, и он сработал. Спасибо.
См. комментарий astrosnapper ; лучше не используйте мой трюк (я его удалил), а используйте один из них.
Или использовать ra.hours * 15.0...? Кажется странным изгибом со стороны, Skyfieldчтобы не позволить вам использовать определенные, совершенно допустимые единицы измерения - использование RA и Dec в десятичных градусах становится все более распространенным.

Ответы (1)

Текст пытается предложить вам это сделать ra._degrees. Как лучше сформулировать сообщение, чтобы было ясно, что предлагается изменить имя запрашиваемого атрибута с .degreesна ._degrees? Поможет ли интерлиньяж .перед именем?

По соглашению одиночные символы подчеркивания указывают на то, что атрибут предназначен для использования в качестве внутренней/частной переменной ( dbader.org/blog/meaning-of-underscores-in-python ). Таким образом, конечные пользователи не должны использовать их вообще. Также вернитесь к исходным комментариям Q: для преобразования радианов в градусы лучше использовать math.degrees()или numpy.degrees()вместо ручного преобразования.
Я бы никогда не использовал ._degreesименно по той причине, на которую указывает astrosnapper. Как пользователь, я предполагаю, что подчеркивание, указывающее на «полуприватность», существует не просто так; возможно, он не будет работать так, как ожидалось, сейчас или в будущем, или может исчезнуть позже, или что-то еще...
@astrosnapper да, действительно, я удалил это и указал здесь.
@astrosnapper и @uhoh — Спасибо, что объяснили свое нежелание следовать указаниям Skyfield в этом случае! Пойду придумаю замену имени. (Первоначально я думал, .degrees_dammitно это не казалось профессиональным, поэтому я попробовал простое начальное подчеркивание, как собственное использование Python namedtupleдля нескольких методов, которые он предлагает пользователям вызывать.) Хотя я также мог просто снять ограничение, мой опыт работы с более старой библиотекой (PyEphem) предполагает, что предоставление пользователям возможности говорить ra.degreesбез предупреждающего сообщения приведет к большому количеству запутанных пользователей и вопросов пользователей.
(Что посоветуете по поводу названия? Очевидно, это было .degrees_anywayдо июля 2014 года, когда Skyfield был еще до версии 1.0, и я переключился на простое подчеркивание.)
@BrandonRhodes Я в замешательстве; есть .kmи .auдля позиций, почему неохота для .degreesи .radians? Почему они без предупреждающего сообщения могут привести к большому количеству запутанных пользователей и вопросов пользователей? Что могло бы сбить с толку углы, которых не было бы для расстояний? Это случилось? Или это архетипический каждый пользователь , созданный доброжелательным разработчиком, неустанно работающим над созданием самого крутого, самого мощного и в то же время простого в использовании пакета Python во вселенной, который должен запутаться и вызвать вопросы? :-)
@uhoh — Увы, это был не «сгенерированный» пользователь, а настоящие пользователи PyEphem (см. мой комментарий выше), которые, как я помню, неоднократно сбивались с толку и выбирали неправильные единицы измерения для RA, а затем нуждались в помощи. Но, может быть, гораздо лучший дизайн Skyfield, который пытается заставить пользователей называть единицы измерения, которые они используют для установки и получения углов, сам по себе устраняет большую часть проблемы? Эта возможность заставляет меня сейчас склоняться к простому устранению чеков. Увы, если нагрузка на поддержку подскочит, я нанесу непоправимый урон, который уже не исправить. Но если получится, Skyfield будет проще.