Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Further steps for release v0.1.0 #120

Merged
merged 6 commits into from
Feb 2, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 23 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,22 @@ PASEOS allows simulating the effect of onboard and operational constraints on us

## Installation

`pip` and `conda` support will follow in the near future.
### pip / conda

`conda` support may follow in the near future.

You can install via `pip` using

```

pip install paseos

```

This requires `Python 3.8` due to [pykep's limited support of pip](https://esa.github.io/pykep/installation.html). If you encounter problems, please consider setting up a dedicated `conda` environment to install dependencies.


### Building from source

For now, first of all clone the [GitHub](https://github.com/aidotse/PASEOS.git) repository as follows ([Git](https://git-scm.com/) required):

Expand Down Expand Up @@ -237,7 +252,7 @@ ActorBuilder.add_comm_device(actor=sat_actor,

#### How to add a power device

The following code snippet shows how to add a power device to a [SpacecraftActor](#spacecraftactor). At the moment, only one battery device is supported.
The following code snippet shows how to add a power device to a [SpacecraftActor](#spacecraftactor).
Moreover, PASEOS assumes that the battery will be charged by solar panels, which will provide energy thanks to the incoming solar radiation when the spacecraft is not eclipsed. Charging and discharging happens automatically during [activities](#activity).

```py
Expand All @@ -258,6 +273,8 @@ ActorBuilder.set_power_devices(actor=sat_actor,

Alternatively to the default `paseos.PowerDeviceType.SolarPanel` you can also use `paseos.PowerDeviceType.RTG`. The only difference at the moment is that [RTGs](https://en.wikipedia.org/wiki/Radioisotope_thermoelectric_generator) also charge in eclipse.

Note that at the moment only one power device is supported. Adding another will override the existing one.

#### Thermal Modelling

To model thermal constraints on spacecraft we utilize a model inspired by the one-node model described in [Martínez - Spacecraft Thermal Modelling and Test](http://imartinez.etsiae.upm.es/~isidoro/tc3/Spacecraft%20Thermal%20Modelling%20and%20Testing.pdf). Thus, we model the change in temperature as
Expand Down Expand Up @@ -303,6 +320,8 @@ The model is evaluated automatically during [activities](#activity). You can che
print(my_actor.temperature_in_K)
```

At the moment, only one thermal model per actor is supported. Setting a second will override the old one.

#### Radiation Modelling
PASEOS models three types of radiation effects.
1. Data corruption due to single event upsets which a event rate $r_d$.
Expand Down Expand Up @@ -521,7 +540,8 @@ sim.perform_activity("activity_A")

##### Waiting for Activities to Finish

If you want to run multiple activities in a row or just wait for the existing one to finish, you can use
At the moment, parallel running of multiple activities is not supported.
However, if you want to run multiple activities in a row or just wait for the existing one to finish, you can use

```py
await sim.wait_for_activity()
Expand Down
28 changes: 14 additions & 14 deletions environment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,17 @@ name: paseos
channels:
- conda-forge
dependencies:
- dotmap
- loguru
- matplotlib
- myst-parser
- pykep
- pytest
- pytest-asyncio
- python
- scikit-spatial
- skyfield
- sphinx
- sphinx_rtd_theme
- toml
- tqdm
- dotmap>=1.3.30 # core non-optional dependency
- loguru>=0.6.0 # core non-optional dependency
- matplotlib-base>=3.6.0 # core non-optional dependency
- myst-parser # for markdown math in docs
- pykep>=2.6 # core non-optional dependency
- pytest # for tests
- pytest-asyncio # for tests involving activities
- python>=3.8 # core non-optional dependency
- scikit-spatial>=6.5.0 # core non-optional dependency
- skyfield>=1.45 # core non-optional dependency
- sphinx # for docs
- sphinx_rtd_theme # for docs
- toml>=0.10.2 # core non-optional dependency
- tqdm>=4.64.1 # core non-optional dependency
Original file line number Diff line number Diff line change
Expand Up @@ -516,7 +516,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.6"
"version": "3.10.8"
},
"vscode": {
"interpreter": {
Expand Down
16 changes: 8 additions & 8 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
dotmap
loguru
pykep
scikit-spatial
skyfield
toml
tqdm
matplotlib
dotmap>=1.3.30
loguru>=0.6.0
matplotlib-base>=3.6.0
pykep>=2.6
scikit-spatial>=6.5.0
skyfield>=1.45
toml>=0.10.2
tqdm>=4.64.1
15 changes: 8 additions & 7 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,14 @@
author_email="pablo.gomez@esa.int",
include_package_data=True,
install_requires=[
"dotmap",
"loguru",
"pykep",
"scikit-spatial",
"skyfield",
"toml",
"tqdm",
"dotmap>=1.3.30",
"loguru>=0.6.0",
"matplotlib-base>=3.6.0",
"pykep>=2.6",
"scikit-spatial>=6.5.0",
"skyfield>=1.45",
"toml>=0.10.2",
"tqdm>=4.64.1",
],
classifiers=[
"Development Status :: 3 - Alpha",
Expand Down