Skip to content

ParaView template project for orbital data visualization (orbits, trajectory points, ground station field of view)

License

Notifications You must be signed in to change notification settings

Ornstein89/paraview_orbit

Repository files navigation

License: MIT

Paraview Orbit Visualization

Описание

Шаблон проекта ParaView для трёхмерной визуализации баллистической информации (траектории космических аппаратов, области видимости, Земля). Единицы измерения - километры. На данный момент доступна только сферическая фигура Земли (эллипсоид в процессе проработки).

  • ParaviewOrbit.pvsm - файл проекта ParaView 5.10.1, Windows 10.
    • TextureMaptoSphere1 - текстура Земли
    • EquatorDisk - условный диск экватора (Disk Source)
    • GreenwichDisk - условный диск гринвичского меридиана (Disk Source)
    • LatGrid_ProgrammableSource - скрипт для отображения сетки координат по широте
    • LonGrid_ProgrammableSource - скрипт для отображения сетки координат по долготе
    • GroundStation - обозначение наземного пункта (Sphere Source)
    • ConeOfView - поле обзора наземного пункта (Cone Source)
    • TableToPoints - фильтр, визуализирующий таблицу с точками траектории как цепочку точек
    • TableToTrajectoryFilter - фильтр, визуализирующий таблицу с точками траектории как линию (Programmable Filter)
  • 8k_earth_daymap.jpg - текстура Земли в равнопромежуточной картографической проекции (Equirectangular projection), источник commons.wikimedia.org
  • latitude_grid_source.py - файл кода Python для LatGrid_ProgrammableSource
  • longitude_grid_source.py - файл кода Python для LonGrid_ProgrammableSource
  • orbit_iss.txt - файл с точками траектории без привязки к параметрам какого-то конкретного КА
  • table_to_trajectory_filter.py- файл кода Python для TableToTrajectoryFilter

Инструкция

1. Отображение траектории

  1. Загрузить файл, содержащий ранее полученные точки траектории спутника, в проект (File → Open). Файл в любом формате, который может распарсить ParaView (CSV, TXT и др.).
  2. Для визуализации точек траектории
  • выбрать загруженную таблицу данных (п.1) в дереве проекта,
  • назначить ей фильтр TableToPoints, в котором задать размер и цвет точек, цвет, прозрачность, и другие параметры отображения.
  1. Для отображения линии или трубки траектории
  • выбрать загруженную таблицу данных (п.1) в дереве проекта,
  • назначить ей фильтр ProgrammableFilter,
  • в поле Script в настройках фильтра ввести код из файла table_to_trajectory_filter.py.

2. Отображение наземного пункта и зоны видимости

  1. Создать точку (Sources → Sphere) с геоцентрическими координатами наземной станции в АГСК. Для сферической Земли координаты рассчитываются на основе широты и долготы:
    from math import sin, cos, radians
    EARTH_RADIUS_KM = 6371.0
    latitude_deg = ...
    longitude_deg = ...
    x = EARTH_RADIUS_KM * cos(radians(longitude_deg)) * cos(radians(latitude_deg))
    y = EARTH_RADIUS_KM * sin(radians(longitude_deg)) * cos(radians(latitude_deg))
    z = EARTH_RADIUS_KM * sin(radians(latitude_deg))
  2. Создать конус зоны видимости (Sources → Cone)
  • задать ему Height и Radius в соответствии с шириной (углом) поля обзора,
  • задать тройку смещений Center: [Height/2, 0, 0],
  • задать Direction [-1, 0, 0],
  • задать в Translation те же координаты, которые указывались при создании сферы - наземного пункта,
  • задать в Orientation [0, -широта, долгота].

3. Настройка окружения

  1. Для загрузки другой текстуры Земли выбрать в дереве проекта элемент TextureMaptoSphere1, в расширенных настройках Lightning -> Texture выбрать свой файл текстуры. Для корректного отображения
  • текстура должна отображать поверхность Земли в равнопромежуточной картографической проекции (Equirectangular projection),
  • в расширенных настройках элемента TextureMaptoSphere1 в разделе Properties выключить Prevent Seam,
  • в расширенных настройках элемента TextureMaptoSphere1 в разделе Lightning выставить включить Seamless U.
  • Открытые текстуры Земли можно найти на
  1. Для включения/выключения плоскости экватора и гринвичского меридиана нажать на "глаз" в дереве проекта (Pipeline browser).

Description

ParaView template project for orbital 3D data visualization (spacecraft orbits, trajectory points, ground stations, fields of view, Earth). Distance units - kilometers. Only spherical Earh is presented by now (ellipsoid is in progress).

  • ParaviewOrbit.pvsm - ParaView project file (Paraview 5.10.1, Windows 10).
    • TextureMaptoSphere1 - Earth texture
    • EquatorDisk - visible equator plane (Disk Source)
    • GreenwichDisk - visible greenwich meridian plane (Disk Source)
    • LatGrid_ProgrammableSource - python script for latitudes grid display (Programmable Source)
    • LonGrid_ProgrammableSource - python script for longitude grid display (Programmable Source)
    • GroundStation - ground station mark (Sphere Source)
    • ConeOfView - ground station cone of view (Cone Source)
    • TableToPoints - filter for display table data as points
    • TableToTrajectoryFilter - filter for display table data as polyline/trajectory (Programmable Filter)
  • 8k_earth_daymap.jpg - Earth texture in equirectangular projection, source commons.wikimedia.org
  • latitude_grid_source.py - python code for LatGrid_ProgrammableSource
  • longitude_grid_source.py - python code for LonGrid_ProgrammableSource
  • orbit_iss.txt - some random spacecraft trajectory points just for example
  • table_to_trajectory_filter.py- python code for TableToTrajectoryFilter

Manual

1. Trajectory visualization

  1. Open trajectory data file (File → Open) in any format ParaView can parse (CSV, TXT and oth.).
  2. To show trajectory as chain of points
  • select loaded table in project tree,
  • apply TableToPoints filter, setup point size, color, transparancy and other display settings.
  1. To show trajectory as line
  • select loaded table in project tree,
  • apply ProgrammableFilter,
  • in the settings in Script field enter code from table_to_trajectory_filter.py.

2. Ground station field of view visualization

  1. Create ground station mark (Sources → Sphere) at ESEF (Earth Centered Earth Fixed) coordinates. Script for calculation of ESEF coordinates from latitude and longitude:
    from math import sin, cos, radians
    EARTH_RADIUS_KM = 6371.0
    latitude_deg = ...
    longitude_deg = ...
    x = EARTH_RADIUS_KM * cos(radians(longitude_deg)) * cos(radians(latitude_deg))
    y = EARTH_RADIUS_KM * sin(radians(longitude_deg)) * cos(radians(latitude_deg))
    z = EARTH_RADIUS_KM * sin(radians(latitude_deg))
  2. Create cone of view (Sources → Cone)
  • set Height and Radius to get necessary size and cone angle,
  • set Center: [Height/2, 0, 0],
  • set Direction : [-1, 0, 0],
  • set Translation : same coordinates as for ground station mark,
  • set Orientation : [0, -latitude, longitude].

3. Scene setup

  1. For use of another Earth texture go to TextureMaptoSphere1, in settings Lightning -> Texture choose another texture image. For correct display
  1. For show/hide equator and greenwich meridian planes click "eye" in project tree (Pipeline browser).

About

ParaView template project for orbital data visualization (orbits, trajectory points, ground station field of view)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages