Nano Hash - криптовалюты, майнинг, программирование

Как получить данные AstroPy из EarthLocation, чтобы они были просто числовыми (широта, долгота, высота)

Я использовал AstroPy EarthLocation чтобы получить широту, долготу и высоту loc = coord.EarthLocation(*itrs.cartesian.xyz) моей распространенной спутниковой орбиты. Теперь я пытаюсь поместить свои данные в текстовый файл, используя np.savetxt().

Я хочу, чтобы мои данные были строго числовыми, а не [ ‹ Latitude XX.xxx deg> , ‹ Latitude YY.yyy deg > , ...], которые он мне сейчас дает. Кто-нибудь знает как это сделать?

Код:

now = []     #UTC time at each propagation step
xyz =[]      #Xyz coordinates from OrbitalPy initial orbit propagation
cartrep = [] #Cartesian Representation
gcrs = []    #Geocentric Celestial Reference System/Geocentric Equatorial Inertial, the default coord system of OrbitalPy
itrs =[]     #International Terrestrial Reference System coordinates
lat = []     #Longitude of the location, for the default ellipsoid
lon = []     #Longitude of the location, for the default ellipsoid
alt = []     #Height of the location, for the default ellipsoid


for i in range(propNum):
    xyz = (myOrbitX[i], myOrbitY[i], myOrbitZ[i])                   #Xyz coord for each prop. step
    now = time.Time(myT[i])                                         #UTC time at each propagation step
    cartrep = coord.CartesianRepresentation(*xyz, unit=u.m)         #Add units of [m] to xyz
    gcrs = coord.GCRS(cartrep, obstime=time.Time(myT[i]))           #Let AstroPy know xyz is in GCRS
    itrs = gcrs.transform_to(coord.ITRS(obstime=time.Time(myT[i]))) #Convert GCRS to ITRS
    loc = coord.EarthLocation(*itrs.cartesian.xyz)                  #Get lat/lon/height from ITRS
    lat.append(loc.lat)                                             #Create latitude list
    lon.append(loc.lon)                                             #Create longitude list
    alt.append(loc.height)                                          #Create altitude list


print('Lat:')
print(lat)
print('Lon:')
print(lon)
print('Alt:')
print(alt)
print('Time:')
print(myT)

Выход:

Lat:

[<Latitude 27.689176073130298 deg>, <Latitude 48.45032120487385 deg>, <Latitude 48.364205712585104 deg>, <Latitude 27.538849564221568 deg>, <Latitude -0.03713701451174661 deg>, <Latitude -27.6161238116795 deg>, <Latitude -48.41635545462272 deg>, <Latitude -48.38265336989975 deg>, <Latitude -27.529850683687265 deg>, <Latitude 0.0929886673818169 deg>]


Lon:

[<Longitude -11.245369984319288 deg>, <Longitude 24.602646508968856 deg>, <Longitude 77.51869866724904 deg>, <Longitude 113.20045826221023 deg>, <Longitude 135.11667887191157 deg>, <Longitude 157.05927178662643 deg>, <Longitude -167.1439210586291 deg>, <Longitude -114.16647366586022 deg>, <Longitude -78.40457926191569 deg>, <Longitude -56.45443351644551 deg>]


Alt:

[<Quantity 409193.55555070826 m>, <Quantity 418422.38904031017 m>, <Quantity 419775.9010528204 m>, <Quantity 412775.65686140396 m>, <Quantity 407430.35452421894 m>, <Quantity 410337.3219834759 m>, <Quantity 415810.49056818814 m>, <Quantity 414410.9036345114 m>, <Quantity 406680.40398573445 m>, <Quantity 402944.3590314008 m>]


Time:

['2000-01-01 12:09:16.000', '2000-01-01 12:18:32.000', '2000-01-01 12:27:48.000', '2000-01-01 12:37:04.000', '2000-01-01 12:46:20.000', '2000-01-01 12:55:36.000', '2000-01-01 13:04:52.000', '2000-01-01 13:14:08.000', '2000-01-01 13:23:24.000', '2000-01-01 13:32:40.000']

Ответы:


1

У вас есть объекты типа Longitude, Latitude и Quantity. Все они имеют атрибут .value. Вот отдельный пример, который создает такие объекты и показывает, как получить доступ к значению:

from astropy.coordinates import Longitude, Latitude
from astropy.units import Quantity
lon = Longitude('42 deg')
lon.value
lat = Latitude('42 deg')
lat.value
height = Quantity('42 meter')
height.value

Так что, может быть, попробуйте изменить свой код на lat.append(loc.lat.value) и т. д. и посмотрите, даст ли это вам списки поплавков, которые вы можете передать np.array для создания массива Numpy или np.savetxt для записи в txt-файл?

Также взгляните на astropy.table.Table, который удобен для хранения табличных данных и последующей записи их в CSV или FITS или другие форматы файлов, немного более удобный и мощный, чем просто использование массивов Numpy и функций ввода-вывода текста Numpy.

03.10.2017
  • Также, если вам нужно значение в определенной единице, вы можете сделать (например) lon.to_value('radian'). 04.10.2017
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..