Шаблон проекта 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.orglatitude_grid_source.py
- файл кода Python дляLatGrid_ProgrammableSource
longitude_grid_source.py
- файл кода Python дляLonGrid_ProgrammableSource
orbit_iss.txt
- файл с точками траектории без привязки к параметрам какого-то конкретного КАtable_to_trajectory_filter.py
- файл кода Python дляTableToTrajectoryFilter
- Загрузить файл, содержащий ранее полученные точки траектории спутника, в проект (
File → Open
). Файл в любом формате, который может распарсить ParaView (CSV, TXT и др.). - Для визуализации точек траектории
- выбрать загруженную таблицу данных (п.1) в дереве проекта,
- назначить ей фильтр
TableToPoints
, в котором задать размер и цвет точек, цвет, прозрачность, и другие параметры отображения.
- Для отображения линии или трубки траектории
- выбрать загруженную таблицу данных (п.1) в дереве проекта,
- назначить ей фильтр
ProgrammableFilter
, - в поле
Script
в настройках фильтра ввести код из файлаtable_to_trajectory_filter.py
.
- Создать точку (
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))
- Создать конус зоны видимости (
Sources → Cone
)
- задать ему
Height
иRadius
в соответствии с шириной (углом) поля обзора, - задать тройку смещений
Center
:[Height/2, 0, 0]
, - задать
Direction
[-1, 0, 0]
, - задать в Translation те же координаты, которые указывались при создании сферы - наземного пункта,
- задать в Orientation
[0, -широта, долгота]
.
- Для загрузки другой текстуры Земли выбрать в дереве проекта элемент
TextureMaptoSphere1
, в расширенных настройкахLightning -> Texture
выбрать свой файл текстуры. Для корректного отображения
- текстура должна отображать поверхность Земли в равнопромежуточной картографической проекции (Equirectangular projection),
- в расширенных настройках элемента
TextureMaptoSphere1
в разделеProperties
выключитьPrevent Seam
, - в расширенных настройках элемента
TextureMaptoSphere1
в разделеLightning
выставить включитьSeamless U
. - Открытые текстуры Земли можно найти на
- Для включения/выключения плоскости экватора и гринвичского меридиана нажать на "глаз" в дереве проекта (
Pipeline browser
).
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 textureEquatorDisk
- 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 pointsTableToTrajectoryFilter
- filter for display table data as polyline/trajectory (Programmable Filter
)
8k_earth_daymap.jpg
- Earth texture in equirectangular projection, source commons.wikimedia.orglatitude_grid_source.py
- python code forLatGrid_ProgrammableSource
longitude_grid_source.py
- python code forLonGrid_ProgrammableSource
orbit_iss.txt
- some random spacecraft trajectory points just for exampletable_to_trajectory_filter.py
- python code forTableToTrajectoryFilter
- Open trajectory data file (
File → Open
) in any format ParaView can parse (CSV, TXT and oth.). - 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.
- To show trajectory as line
- select loaded table in project tree,
- apply
ProgrammableFilter
, - in the settings in
Script
field enter code fromtable_to_trajectory_filter.py
.
- 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))
- Create cone of view (
Sources → Cone
)
- set
Height
andRadius
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]
.
- For use of another Earth texture go to
TextureMaptoSphere1
, in settingsLightning -> Texture
choose another texture image. For correct display
- texture must be in equirectangular map projection,
- in
TextureMaptoSphere1
extended settings inProperties
enablePrevent Seam
, - in
TextureMaptoSphere1
extended settings inLightning
enableSeamless U
. - another free Earth texture sources
- For show/hide equator and greenwich meridian planes click "eye" in project tree (
Pipeline browser
).