{"id":21712488,"url":"https://github.com/ornstein89/paraview_orbit","last_synced_at":"2025-07-17T04:42:04.908Z","repository":{"id":55281515,"uuid":"515981890","full_name":"Ornstein89/paraview_orbit","owner":"Ornstein89","description":"ParaView template project for orbital data visualization (orbits, trajectory points, ground station field of view)","archived":false,"fork":false,"pushed_at":"2022-10-28T19:23:53.000Z","size":5496,"stargazers_count":9,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-12T18:05:39.777Z","etag":null,"topics":["orbit","orbital-simulation","paraview","programmable-filter","programmable-source","satellite","spacecraft","spacecraft-trajectories","trajectory","trajectory-visualization","vtk"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Ornstein89.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-07-20T12:55:08.000Z","updated_at":"2024-06-29T13:49:05.000Z","dependencies_parsed_at":"2023-01-20T21:06:24.930Z","dependency_job_id":null,"html_url":"https://github.com/Ornstein89/paraview_orbit","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ornstein89%2Fparaview_orbit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ornstein89%2Fparaview_orbit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ornstein89%2Fparaview_orbit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ornstein89%2Fparaview_orbit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ornstein89","download_url":"https://codeload.github.com/Ornstein89/paraview_orbit/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248610340,"owners_count":21132921,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["orbit","orbital-simulation","paraview","programmable-filter","programmable-source","satellite","spacecraft","spacecraft-trajectories","trajectory","trajectory-visualization","vtk"],"created_at":"2024-11-25T23:39:24.076Z","updated_at":"2025-04-12T18:08:23.759Z","avatar_url":"https://github.com/Ornstein89.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n# Paraview Orbit Visualization\n\n## Описание\n\n![](./image1.png)\n\nШаблон проекта ParaView для трёхмерной визуализации баллистической информации (траектории космических аппаратов, области видимости, Земля). Единицы измерения - километры. На данный момент доступна только сферическая фигура Земли (эллипсоид в процессе проработки).\n\n* `ParaviewOrbit.pvsm` - файл проекта ParaView 5.10.1, Windows 10.\n  * `TextureMaptoSphere1` - текстура Земли\n  * `EquatorDisk` - условный диск экватора (`Disk Source`)\n  * `GreenwichDisk` - условный диск гринвичского меридиана (`Disk Source`)\n  * `LatGrid_ProgrammableSource` - скрипт для отображения сетки координат по широте\n  * `LonGrid_ProgrammableSource` - скрипт для отображения сетки координат по долготе\n  * `GroundStation` - обозначение наземного пункта (`Sphere Source`)\n  * `ConeOfView` - поле обзора наземного пункта  (`Cone Source`)\n  * `TableToPoints` - фильтр, визуализирующий таблицу с точками траектории как цепочку точек\n  * `TableToTrajectoryFilter` - фильтр, визуализирующий таблицу с точками траектории как линию (`Programmable Filter`)\n* `8k_earth_daymap.jpg` - текстура Земли в равнопромежуточной картографической проекции (Equirectangular projection), [источник commons.wikimedia.org](https://commons.wikimedia.org/wiki/File:Solarsystemscope_texture_8k_earth_daymap.jpg)\n* `latitude_grid_source.py` - файл кода Python для `LatGrid_ProgrammableSource`\n* `longitude_grid_source.py` - файл кода Python для `LonGrid_ProgrammableSource`\n* `orbit_iss.txt` - файл с точками траектории без привязки к параметрам какого-то конкретного КА\n* `table_to_trajectory_filter.py`- файл кода Python для `TableToTrajectoryFilter`\n\n## Инструкция\n\n### 1. Отображение траектории\n\n1. Загрузить файл, содержащий ранее полученные точки траектории спутника, в проект (`File → Open`). Файл в любом формате, который может распарсить ParaView (CSV, TXT и др.).\n2. Для визуализации точек траектории\n  * выбрать загруженную таблицу данных (п.1) в дереве проекта,\n  * назначить ей фильтр `TableToPoints`, в котором задать размер и цвет точек, цвет, прозрачность, и другие параметры отображения.\n3. Для отображения линии или трубки траектории\n  * выбрать загруженную таблицу данных (п.1) в дереве проекта,\n  * назначить ей фильтр `ProgrammableFilter`,\n  * в поле `Script` в настройках фильтра ввести код из файла `table_to_trajectory_filter.py`.\n\n### 2. Отображение наземного пункта и зоны видимости\n\n1. Создать точку (`Sources → Sphere`) с геоцентрическими координатами наземной станции в АГСК. Для сферической Земли координаты рассчитываются на основе широты и долготы:\n    ```python\n    from math import sin, cos, radians\n    EARTH_RADIUS_KM = 6371.0\n    latitude_deg = ...\n    longitude_deg = ...\n    x = EARTH_RADIUS_KM * cos(radians(longitude_deg)) * cos(radians(latitude_deg))\n    y = EARTH_RADIUS_KM * sin(radians(longitude_deg)) * cos(radians(latitude_deg))\n    z = EARTH_RADIUS_KM * sin(radians(latitude_deg))\n    ```\n2. Создать конус зоны видимости (`Sources → Cone`)\n  * задать ему `Height` и `Radius` в соответствии с шириной (углом) поля обзора,\n  * задать тройку смещений `Center`: `[Height/2, 0, 0]`,\n  * задать `Direction` `[-1, 0, 0]`,\n  * задать в Translation те же координаты, которые указывались при создании сферы - наземного пункта,\n  * задать в Orientation `[0, -широта, долгота]`.\n\n### 3. Настройка окружения\n\n1. Для загрузки другой текстуры Земли выбрать в дереве проекта элемент `TextureMaptoSphere1`, в расширенных настройках `Lightning -\u003e Texture` выбрать свой файл текстуры. Для корректного отображения\n  * текстура должна отображать поверхность Земли в равнопромежуточной картографической проекции   (Equirectangular projection),\n  * в расширенных настройках элемента `TextureMaptoSphere1` в   разделе `Properties` выключить `Prevent Seam`,\n  * в расширенных настройках элемента `TextureMaptoSphere1` в   разделе `Lightning` выставить включить `Seamless U`.\n  * Открытые текстуры Земли можно найти на\n    * https://www.solarsystemscope.com/textures/\n    * https://visibleearth.nasa.gov/\n2. Для включения/выключения плоскости экватора и гринвичского меридиана нажать на \"глаз\" в дереве проекта (`Pipeline browser`).\n\n---\n\n## Description\n\nParaView 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).\n\n* `ParaviewOrbit.pvsm` - ParaView project file (Paraview 5.10.1, Windows 10).\n  * `TextureMaptoSphere1` - Earth texture\n  * `EquatorDisk` - visible equator plane (`Disk Source`)\n  * `GreenwichDisk` - visible greenwich meridian plane (`Disk Source`)\n  * `LatGrid_ProgrammableSource` - python script for latitudes grid display (`Programmable Source`)\n  * `LonGrid_ProgrammableSource` - python script for longitude grid display  (`Programmable Source`)\n  * `GroundStation` - ground station mark (`Sphere Source`)\n  * `ConeOfView` - ground station cone of view  (`Cone Source`)\n  * `TableToPoints` - filter for display table data as points\n  * `TableToTrajectoryFilter` - filter for display table data as polyline/trajectory (`Programmable Filter`)\n* `8k_earth_daymap.jpg` - Earth texture in equirectangular projection, [source commons.wikimedia.org](https://commons.wikimedia.org/wiki/File:Solarsystemscope_texture_8k_earth_daymap.jpg)\n* `latitude_grid_source.py` - python code for `LatGrid_ProgrammableSource`\n* `longitude_grid_source.py` - python code for `LonGrid_ProgrammableSource`\n* `orbit_iss.txt` - some random spacecraft trajectory points just for example\n* `table_to_trajectory_filter.py`- python code for `TableToTrajectoryFilter`\n\n## Manual\n\n### 1. Trajectory visualization\n\n1. Open trajectory data file (`File → Open`) in any format ParaView  can parse (CSV, TXT and oth.).\n2. To show trajectory as chain of points\n  * select loaded table in project tree,\n  * apply `TableToPoints` filter, setup point size, color, transparancy and other display settings.\n3. To show trajectory as line\n  * select loaded table in project tree,\n  * apply `ProgrammableFilter`,\n  * in the settings in `Script` field enter code from `table_to_trajectory_filter.py`.\n\n### 2. Ground station field of view visualization\n\n1. Create ground station mark (`Sources → Sphere`) at ESEF (Earth Centered Earth Fixed) coordinates. Script for calculation of ESEF coordinates from latitude and longitude:\n    ```python\n    from math import sin, cos, radians\n    EARTH_RADIUS_KM = 6371.0\n    latitude_deg = ...\n    longitude_deg = ...\n    x = EARTH_RADIUS_KM * cos(radians(longitude_deg)) * cos(radians(latitude_deg))\n    y = EARTH_RADIUS_KM * sin(radians(longitude_deg)) * cos(radians(latitude_deg))\n    z = EARTH_RADIUS_KM * sin(radians(latitude_deg))\n    ```\n2. Create cone of view (`Sources → Cone`)\n  * set `Height` and `Radius` to get necessary size and cone angle,\n  * set `Center`: `[Height/2, 0, 0]`,\n  * set `Direction` : `[-1, 0, 0]`,\n  * set `Translation` : same coordinates as for ground station mark,\n  * set `Orientation` : `[0, -latitude, longitude]`.\n\n### 3. Scene setup\n\n1. For use of another Earth texture go to `TextureMaptoSphere1`, in settings `Lightning -\u003e Texture` choose another texture image. For correct display\n  * texture must be in equirectangular map projection,\n  * in `TextureMaptoSphere1` extended settings in `Properties` enable `Prevent Seam`,\n  * in `TextureMaptoSphere1` extended settings in `Lightning` enable `Seamless U`.\n  * another free Earth texture sources\n    * https://www.solarsystemscope.com/textures/\n    * https://visibleearth.nasa.gov/\n2. For show/hide equator and greenwich meridian planes click \"eye\" in project tree (`Pipeline browser`).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fornstein89%2Fparaview_orbit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fornstein89%2Fparaview_orbit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fornstein89%2Fparaview_orbit/lists"}