{"id":18265149,"url":"https://github.com/nasa-ammos/aerie-simple-model-data","last_synced_at":"2025-04-09T01:42:45.996Z","repository":{"id":238600018,"uuid":"706780467","full_name":"NASA-AMMOS/aerie-simple-model-data","owner":"NASA-AMMOS","description":"An Aerie model of data management and a demonstration with a simple mission model","archived":false,"fork":false,"pushed_at":"2024-07-03T20:36:54.000Z","size":40200,"stargazers_count":0,"open_issues_count":5,"forks_count":0,"subscribers_count":18,"default_branch":"main","last_synced_at":"2025-02-14T19:54:19.376Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NASA-AMMOS.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-10-18T15:48:08.000Z","updated_at":"2024-05-06T22:48:25.000Z","dependencies_parsed_at":"2024-12-22T15:23:43.966Z","dependency_job_id":"9650141a-7aaf-4e90-83bb-f34188236fd9","html_url":"https://github.com/NASA-AMMOS/aerie-simple-model-data","commit_stats":null,"previous_names":["nasa-ammos/aerie-simple-model-data"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NASA-AMMOS%2Faerie-simple-model-data","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NASA-AMMOS%2Faerie-simple-model-data/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NASA-AMMOS%2Faerie-simple-model-data/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NASA-AMMOS%2Faerie-simple-model-data/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NASA-AMMOS","download_url":"https://codeload.github.com/NASA-AMMOS/aerie-simple-model-data/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247958710,"owners_count":21024821,"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":[],"created_at":"2024-11-05T11:17:16.727Z","updated_at":"2025-04-09T01:42:45.973Z","avatar_url":"https://github.com/NASA-AMMOS.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# aerie-simple-model-data\nA reusable multi-mission model of data management for Aerie\n\nThis repository provides a simple, configurable spacecraft data management model for use within the [Aerie framework](https://github.com/NASA-AMMOS/aerie). The data model includes basic components to represent a data storage device and categories of data, which can be optionally storage limited and represent types of data, folders, partitions, etc.\nSee the [model behavior documentation](docs/ModelBehaviorDescription.md) for a description of activities affecting data\nvolumes and details of how data volumes are calculated in the presence of limits and priorities.\nFor example, if the total storage limit is reached, lower priority data will be deleted as higher priority data is collected.\n\n## Quick Start\n\nInterested in giving the data model a quick spin? We've pre-built a very simple example spacecraft model, demosystem, that uses the data model. This model has a few activities in it that add and transfer data. To try out this model, simply load [demo.jar](demo.jar) into Aerie. If you have never used Aerie before and need some help getting it deployed and uploading a model, start [here](https://nasa-ammos.github.io/aerie-docs/introduction/#fast-track).\n\nOnce you have loaded [demo.jar](demo.jar) into Aerie, make a plan with a time range of your choosing (a plan length of a day should be reasonable). Once you have created a plan, add a couple of activities to it and hit the simulate button. Once the simulation completes you should see a green check appear next to the Simulation icon, and viola, you have successfully run the data model!\n\nAlternatively, you can follow instructions for [loading a sample plan](#loading-a-sample-plan).\n\nTo actually see the results of the simulation you ran, you can load a pre-built [basic data model view](DataModelBasicView.json) that will place a number of different resources on to the timeline for named buckets of data.\n\n## Organization\n\nThe core data model is in the `model` directory.  This is what the mission modeler would integrate into their own spacecraft model if they needed a data model. The `demo` directory contains an example to show how a mission modeler can integrate this data model into their model, specifically by changing their package.info file and their top-level mission class.\n\nThe following instructions assume that you are using MacOS, but the instructions for building and running should work on Linux and Windows, too.\n## Prerequisites\n\n- Install [OpenJDK Temurin LTS](https://adoptium.net/temurin/releases/?version=19). If you're on macOS, you can install [brew](https://brew.sh/) instead and then use the following command to install JDK 19:\n\n  ```sh\n  brew tap homebrew/cask-versions\n  brew install --cask temurin21\n  ```\n\n  Make sure you update your `JAVA_HOME` environment variable. For example with [Zsh](https://www.zsh.org/) you can update your `.zshrc` with:\n\n  ```sh\n  export JAVA_HOME=\"/Library/Java/JavaVirtualMachines/temurin-21.jdk/Contents/Home\"\n  ```\n\n- Ensure you have docker installed on your machine. If you do not, install it [here](https://docs.docker.com/desktop/).\n\n- Navigate to a directory on your local machine where you want to keep this repo and clone the repo using the following command:\n\n  ```sh\n  git clone https://github.jpl.nasa.gov/MPS/aerie-data-model.git\n  ```\n\n- Set `GITHUB_USER` and `GITHUB_TOKEN` environment variables to your credentials inside this directory (first you need to create a [personal access token](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-personal-access-token-classic) in your GitHub account) so you can download the Aerie Maven packages from the [GitHub Maven package registry](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-apache-maven-registry). For example with Zsh you can update your `.zshrc` to set the variables with:\n\n  ```sh\n  export GITHUB_USER=\"your github user\"\n  export GITHUB_TOKEN=\"your github token\"\n  ```\n\n## Building\n\nTo build the mission model JAR file in the `demo/build/libs` sub-directory of the repository directory and the data model jar in the `model/build/libs` sub-directory, you can type in this command in the directory of the repository:\n\n```sh\n./gradlew build --refresh-dependencies\n```\n\nYou can deploy Aerie on your local machine by first opening Docker Desktop, and then you can start the Aerie services using the following command in the directory of the repository:\n\n```sh\ndocker compose up -d\n```\n\nYou can then upload the JAR to Aerie using either the [UI](http://localhost/) or API.\n\n## Testing\n\nTo run unit tests under [./src/test](./src/test), you can enter:\n\n```sh\n./gradlew test\n```\n\n## Loading a Sample Plan\n\nYou can use a command line tool for aerie to upload a sample plan.  Follow the instructions at\nhttps://github.com/NASA-AMMOS/aerie-cli to install and try out aerie-cli.  Before uploading a plan,\nget the model id of the mission model jar that you uploaded.  Then upload the included\n[sample-plan.json](sample-plan.json), issue the following command replacing \"1\" with the\nmission model id you found:\n```sh\naerie-cli plans upload -i sample-plan.json -m 1 --time-tag\n```\nThe `--time-tag` option adds a timestamp to the plan name so that multiple uploads don't try to reuse the same name,\nwhich causes and error.\n\nYou can then simulate and view with the [basic data model view](DataModelBasicView.json), assuming that you have\nalready uploaded it as described in the [Quick Start](#quick-start) section above.  And you should then see the\nsimulation results below:\n\n![aerie screenshot](docs/sample-plan.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnasa-ammos%2Faerie-simple-model-data","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnasa-ammos%2Faerie-simple-model-data","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnasa-ammos%2Faerie-simple-model-data/lists"}