Шаблон проекта 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_ProgrammableSourcelongitude_grid_source.py- файл кода Python дляLonGrid_ProgrammableSourceorbit_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_ProgrammableSourcelongitude_grid_source.py- python code forLonGrid_ProgrammableSourceorbit_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
TableToPointsfilter, 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
Scriptfield 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
HeightandRadiusto 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 -> Texturechoose another texture image. For correct display
- texture must be in equirectangular map projection,
- in
TextureMaptoSphere1extended settings inPropertiesenablePrevent Seam, - in
TextureMaptoSphere1extended settings inLightningenableSeamless U. - another free Earth texture sources
- For show/hide equator and greenwich meridian planes click "eye" in project tree (
Pipeline browser).
