From a43925e2daa523f132dbce8b5e01ccff007aecaf Mon Sep 17 00:00:00 2001
From: "Gabriele.Meoni"
- Description of PASEOS data structure
+ Snapshot of PASEOS visualization
Table of Contents
+
+
+
`PASEOS` is designed to:
+
+* **open-source**: the source of `PASEOS` are available at this [GitHub](https://github.com/aidotse/PASEOS.git) repository.
+* **fully-decentralised**: one instance of `PASEOS` shall be executed in every node of the emulated spacecraft swarm. Each instance of `PASEOS` is responsible of the user [activities](#activity) executed in that node while keeping track of the status of the other nodes. In this way, the design of `PASEOS` is completely decentralised and independent on the number of nodes of the constellation. Because of that, both single-node and multi-node scenarios are possibles.
+* **application-agnostic**: each user operation that has to be executed in a node is modelled as an [activity](#activity). The user is required to provide the code and some parameters (e.g., power-consumption) for each [activity](#activity) that shall be executed in a `PASEOS` node. In this way, `PASEOS` is completely application-agnostic.
+
+
The project was developed by [$\Phi$-lab@Sweden](https://www.ai.se/en/data-factory/f-lab-sweden) in the frame of the collbaboration between [AI Sweden](https://www.ai.se/en/) and the [European Space Agency](https://www.esa.int/) to explore distributed edge learning for space applications. For more information on `PASEOS` and $\Phi$-lab@Sweden, please take a look at the recordings on the $\Phi$-lab@Sweden [kick-off event](https://www.youtube.com/watch?v=KuFRCcNxLgo&t=2365s).
+
+## Installation
+First of all clone the [GitHub](https://github.com/aidotse/PASEOS.git) repository as follows ([Git](https://git-scm.com/) required):
+
+```
+git clone https://github.com/aidotse/PASEOS.git
+```
+
+To install `PASEOS` you can use [conda](https://docs.conda.io/en/latest/) as follow:
+
+```
+cd PASEOS
+conda env create -f environment.yml
+```
+This will create a new conda environment called ```paseos``` and install the required software packages.
+To activate the new environment, you can use:
+
+```
+conda activate paseos
+```
+
+Alternatively, you install `PASEOS` by using [PyPy](https://www.pypy.org/) as follows:
+
+```
+cd PASEOS
+pip install -e .
+```
+
+## Contributing
+The ```PASEOS``` project is open to contributions. To contribute, you can open an [issue](https://github.com/gomezzz/MSMatch/issues) to report a bug or to request a new feature. If you prefer discussing new ideas and applications, you can contact us via email (please, refer to [Contact](#contact)).
+To contribute, please proceed as follow:
+
+1. Fork the Project
+2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
+3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
+4. Push to the Branch (`git push origin feature/AmazingFeature`)
+5. Open a Pull Request
+
+## Examples
+### Visualising PASEOS
+Navigate to paseos/visualization to find a jupyter notebook containing examples of how to visualize PASEOS.
+Visualization can be done in interactive mode or as an animation that is saved to disc.
+In the figure below, Earth is visualized in the center as a blue sphere with different spacecraft in orbit.
+Each spacecraft has a name and if provided, a battery level and a communications device.
+The local device is illustrated with white text.
+In the upper-right corner, the status of the communication link between each spacecraft is shown.
+Finally, the time in the lower left and lower right corners correspond to the epoch and the PASEOS local simulation time.
- Description of PASEOS workflow on an individual device + Description of PASEOS data structure
-## Visualising PASEOS -Navigate to paseos/visualization to find a jupyter notebook containing examples of how to visualize PASEOS. -Visualization can be done in interactive mode or as an animation that is saved to disc. -In the figure below, Earth is visualized in the center as a blue sphere with different spacecraft in orbit. -Each spacecraft has a name and if provided, a battery level and a communications device. -The local device is illustrated with white text. -In the upper-right corner, the status of the communication link between each spacecraft is shown. -Finally, the time in the lower left and lower right corners correspond to the epoch and the PASEOS local simulation time. -- Snapshot of PASEOS visualization + Description of PASEOS workflow on an individual device
- \ No newline at end of file + + +## Glossary +* ### Activity + Any operation performed by a [Spacecraft-actor](#spacecraftactor) that shall be implemented in `PASEOS`. Activities might include data transmission, house-keeping operations, onboard data acquisition and processing, and others. + +* ### Actor + Since `PASEOS` is fully-decentralised, each node of a `PASEOS` constellation shall run an instance of `PASEOS` modelling all the nodes of that constellation. The abstraction of a constellation node inside a `PASEOS` instace is a `PASEOS` `actor`. + +* ### Local actor + The `actor` in a `PASEOS` instance that models the behavior and the status of the node that runs that `PASEOS` instance is called `local actor`. + +* ### Ground station-actor + `PASEOS actor` emulating a ground station. + +* ### Spacecraft-actor + `PASEOS actor` emulating a spacecraft or a satellite. + + + + +## Contact +Created by [$\Phi$-lab@Sweden](https://www.ai.se/en/data-factory/f-lab-sweden). + +* Pablo Gómez - pablo.gomez at esa.int, pablo.gomez at ai.se +* Gabriele Meoni - gabriele.meoni at esa.int, gabriele.meoni at ai.se +* Johan Östman - johan.ostman at ai.se +* Vinutha Magal Shreenath - vinutha at ai.se \ No newline at end of file From 486e676c2caa63af7a297e70d9906a8d99153a30 Mon Sep 17 00:00:00 2001 From: "Gabriele.Meoni"B_E=orip#yLM{2JpFHK3-y=Z!#R#Ig{Uo{ppBW@Btcg4FN9aOhnNrh57
zUH;QBDpAAMV5ctiM1ZWZlHemIa+4>Ic~amHLrOmD7-bJd>}uT_kNt&KW%F@ZC?uz%
zh%RSyY-Na6y~%HqUu5_lqY97rfw_ls&Y%Nx9hwLgp4G55LFtD4Jq#7m{nhM{a1b(o
zP_=)z?db}~p6Uw;&naDbIwkBKZ8j3}oBYM2nT#szsD}104Uxq(!q-i#lLn8Y+kOMN
zxlZb`;U_KDs?m)A>f0cYqoNEq+&9r8;5Z6{>M}QVH?`;1dnHPq8GQtBD!yED@k #
ziI+)u@BHNg2UO0p9BHR2a#J+T`dv#Ywq)T!_7gYj-c0m`L`qsTE8d0{ul&eOO5`T#
z8ajKJLx!MZ6cG1+r12p;v2fu-5q(0szY!m~3BS>CSie3)D=dwwXpy%xSgAkfbu#Y?
z!`!Zj` 5#aeTh{`pc3I2-*ed~~o(Z80a^e@U7LDbrY)5`DLjH6|X=Yv4
zc}F1p8#Z@K@Ru)Nlv4{}@2tKX*tM{|R9cpKSd#2w!-Q|Rt0A(>&v@~oakD6R_!s)T
z*Ie8BS5|$Avn7=EzOEfU5sd41{qZza<-$yfCF6_`t2dihzXf~l9l+{=rc?3F6Tyl<
zB4*?hyIqT)PGKf9i)tvnm$*W6!T1tankIdIq8>h^bl1k>{fHSQAPOv;em6=($$4Pe
z9|vn|eXjm82uNaBRm6grK-&{`29XRbaqFRs@Rnu1ob_SkdmZjW>$D}
z0)#=jF%il73b7Q0rRRZQXg!V3M!lkTjLIT`@mMOol>;4WD`m|IEi5%xFx^Z;*Xg)j06cu*okQUhKRJ9fh0=F-)=(GI@*oF
zB#7`AU2rpPp+gByFjE0k*me-73+2joQx^XJL8j(tu))D*_G3UTW`Ev%7`Sj|QYVr{
z49BXUV9OC;O3+}kZzL&444?L*uq6PNBt#;87pAf6w^4h+N+Ql#szPStq$^*32mQFX2?L!;*td0tAj0#_Xl&5pI-bj1pev6qUf&q2?!m?l87Ts%j&&Rl*2`yzI
ztDsN(=1g9>vMP%S`pfJ5-m11xLN!|jq0J0U=n~|3jj#7Kb
zRt)|#-Ok=V&q^Y&=A|BQLsYTS`7%~e%qIL(E#F>eGwwO>O|n+87Yxa&G|@;MCGak%
zoxoAjbb3VNzJrWi@Mf!dN9qZA&G6fM;Xtnrd%JL$vu>sy#q(?SPryM1K8iK1L5LCL
z7prKN$Z#`LBwb}iqX-{JDDFO!q2l4tZ&}@JS&kN|75Nn@s4olNL1=)dF+pr#gM-ir
zSxN#*JJL?vP)t!T_qQMRx1Cg$O1OxX-noh{SBz@lrMMcH$0%9(@kH4bMd`=08HLcW
z7HhLEH=b9QbeCH2lkH@)EvlUFqM$SFm<(;&vgmI1Jk)1U_n;8(SPb7g#Bc8ohMza7
zVk%el5p^FXq-E>TYjm9$jztp
zO#?9v5<1Odl|Og>_qq9TBeEF&_2@c78P^Ss?MR&uzd9EUw|O&r)I8>P>^yH$1Dyk5
z83Mw}u)s?)op32QbEj!K>+3$8f2ZVBV=?(Xgo+}+&?9vp%V?(PsExFrzW-CcqPx4|vw;Le@A
zYkl`GoasK(yLQ!62aaMt1}JLCz#GfGbyvWVu5oK#>=uhr!rgkyCychkYzO_Jot2f9
zLxMV9MdT1Al7DB)%UP&e4W`Sr51H4oxo}gfv*=;Y;JRAflLUI~dy$xZLY&JFH&&q_
zHwn?6lxT9VYljgK=4*rEdmKPh&zyg
quh^PO?f=!rS
z@P&EO%W>w*b+gAatK~adao50c;$GPl=3y1QRImLsG#Z;w`6<}K;A|Hkx4Rb37SX2(
zH{p{BP=@}T%5!>CWIzn{zg_T-$fXaubLV-B(yL!eN
zBr#@)RZDbZ9HKA>XVQl#SBTb4BZHEg_D>e-t7f8~Z7}*Q)PxrD=LfL%$J)Uv#xSD_
zzqDJ$CBz)rgkW+=8?2&Okk##fplBJ;G9FtU+%MtYF5wVyGsoxaS4wvnoK^IcG96bs
z>$P@DLopXF+A;Upv45r&iTq-NqO%HFZeu&@tV-e`ZMrq7Q1-`rA^{&Z%fQe#fDi=^
z`xs=4VZPsuP}U8VBW@?krKm%E4Zh21@wIki7Rs(oe_V^U{5egnT5}we+$(|74ML%G
z!IDrzf>a|4^d@4HgDh5u934l!^s79V(HYlM3g^7(%b}gFO2^;&Ywg1B>cncu%admh
z8ffj29j%^|Ze%Dl#z@IMm9npaPcKGaEJlBm5QCEp6h6%+1>6^rBD@$oHiHci3Gsc2
zq(Wf&FnZtRgUi0Tp=BdR8w