B612-Asteroid-Institute / adam_home

Licence: MIT license
ADAM python client and notebooks

Programming Languages

python
139335 projects - #7 most used programming language
E
10 projects

Projects that are alternatives of or similar to adam home

adam
Addon which enhances all user profiles of confluence. It also adds an advanced people directory. The whole addon is configurable by means of an XML, can be localized, supports Velocity templates and supports view and edit restrictions.
Stars: ✭ 12 (+0%)
Mutual labels:  adam
databricks-notebooks
Collection of Databricks and Jupyter Notebooks
Stars: ✭ 19 (+58.33%)
Mutual labels:  jupyter-notebooks
Seminars
Занятия по Machine Learning клуба AI Community Innopolis
Stars: ✭ 62 (+416.67%)
Mutual labels:  jupyter-notebooks
reinforcement learning course materials
Lecture notes, tutorial tasks including solutions as well as online videos for the reinforcement learning course hosted by Paderborn University
Stars: ✭ 765 (+6275%)
Mutual labels:  jupyter-notebooks
pydna
Clone with Python! Data structures for double stranded DNA & simulation of homologous recombination, Gibson assembly, cut & paste cloning.
Stars: ✭ 109 (+808.33%)
Mutual labels:  jupyter-notebooks
Quantum-Computing-Resources
This repository contains the best resources for learning practical quantum computing. This repository will be updated frequently.
Stars: ✭ 60 (+400%)
Mutual labels:  jupyter-notebooks
notebooks-ci-showcase
Fully Configured Example of CI/CD For Notebooks On Top Of GCP
Stars: ✭ 22 (+83.33%)
Mutual labels:  jupyter-notebooks
SciCompforChemists
Scientific Computing for Chemists text for teaching basic computing skills to chemistry students using Python, Jupyter notebooks, and the SciPy stack. This text makes use of a variety of packages including NumPy, SciPy, matplotlib, pandas, seaborn, NMRglue, SymPy, scikit-image, and scikit-learn.
Stars: ✭ 65 (+441.67%)
Mutual labels:  jupyter-notebooks
notebook-environments
Manage python virtual environments on the working notebook server
Stars: ✭ 43 (+258.33%)
Mutual labels:  jupyter-notebooks
Self-Driving-Car-Steering-Simulator
The aim of this project is to allow a self driving car to steer autonomously in a virtual environment.
Stars: ✭ 15 (+25%)
Mutual labels:  jupyter-notebooks
portfolio
Site built from fastpages: https://fastpages.fast.ai/. Deployed here 👉
Stars: ✭ 16 (+33.33%)
Mutual labels:  jupyter-notebooks
IOTA101
IOTA Developer Essentials
Stars: ✭ 38 (+216.67%)
Mutual labels:  jupyter-notebooks
03 Python Flow Control
Flow control is the order in which statements or blocks of code are executed at runtime based on a condition. Learn Conditional statements, Iterative statements, and Transfer statements
Stars: ✭ 207 (+1625%)
Mutual labels:  jupyter-notebooks
notebook-free-notebook
A professional, lock-in-free Jupyter dev env for coders, teams and non-trivial, large Jupyter projects
Stars: ✭ 38 (+216.67%)
Mutual labels:  jupyter-notebooks
aws-iot-analytics-notebook-containers
An extension for Jupyter notebooks that allows running notebooks inside a Docker container and converting them to runnable Docker images.
Stars: ✭ 25 (+108.33%)
Mutual labels:  jupyter-notebooks
omxware-getting-started
Examples to get started with IBM Functional Genomics Platform
Stars: ✭ 13 (+8.33%)
Mutual labels:  jupyter-notebooks
colour-notebooks
Colour - Jupyter Notebooks
Stars: ✭ 21 (+75%)
Mutual labels:  jupyter-notebooks
xyz-spaces-python
Manage your XYZ Hub or HERE Data Hub spaces from Python.
Stars: ✭ 29 (+141.67%)
Mutual labels:  jupyter-notebooks
jupyter-cache
A defined interface for working with a cache of executed jupyter notebooks
Stars: ✭ 28 (+133.33%)
Mutual labels:  jupyter-notebooks
ada-hessian
Easy-to-use AdaHessian optimizer (PyTorch)
Stars: ✭ 59 (+391.67%)
Mutual labels:  adam

ADAM Python SDK and Jupyter notebooks

Python package Coverage Status

What is ADAM?

ADAM (Asteroid Decision, Analysis, and Mapping) is a cloud-based software platform that performs astrodynamics algorithms (e.g. orbit propagation). You can find whitepapers, presentations, etc. here.

The ADAM platform provides a REST API and this repo contains the Python SDK (software development kit) that can be used for accessing the API.

Onboarding

The ADAM API is currently in private beta. If you'd like to write Python workflows that use ADAM, reach out to carise@ to request a project ID.

Mac/Linux/WSL Configuration

The following configuration steps have been tested on Mac OS (Catalina and Big Sur), Linux (Debian-like), and WSL (Debian, Ubuntu). There's also been some limited testing on the Windows Anaconda Powershell command prompt.

  1. Install anaconda. The individual edition is sufficient if you don't already have anaconda.

  2. Install adamctl. This command line utility helps you configure your ADAM Python client. (More on that below.)

# get latest release of ADAM sdk
# add the -c conda-forge for some of the adam dependencies
conda install -c conda-forge -c asteroid-institute adam
  1. Login to ADAM. This authenticates you with the ADAM server so that you can access the ADAM APIs. You will need a Google account. (e.g. gmail or a Google Workspace email).
adamctl login dev https://adam-dev-193118.appspot.com/_ah/api/adam/v1
  1. Set your ADAM project ID. The project is like a folder for jobs you run on ADAM.
adamctl config envs.dev.workspace "YOUR_WORKSPACE_ID"
  1. To view your ADAM server configurations:
adamctl config

Demos

Once you have the package installed, you should be able to run the demonstration notebooks found in the demos/ directory. The single_run_demo is a good place to start.

Before invoking code from the ADAM SDK, you'll want to include the following code at the top of your notebook (after the imports):

# The default configuration is prod
cm = ConfigManager()

# If you need to use a different server than the default e.g. dev:
# cm.set_default_env('dev')
# You can also set your default environment using the adamctl command-line tool, e.g.
# adamctl config default_env dev

# Configure the REST API server endpoint and user token
auth_rest = AuthenticatingRestProxy(RestRequests())

# If you need to use properties in the config, e.g. your workspace ID:
config = cm.get_config()
print(config[workspace])

See the single_run_demo notebook for an example.

SDK documentation

https://b612-asteroid-institute.github.io/adam_home/index.html

Developing ADAM SDK

The ADAM SDK is a pure-python package that follows the standard setuptools directory layout and installation mechanisms. The source code is in the adam/ subdirectory, the tests are in tests/. A number of demo notebooks are provided in demos/. Conda package recipe files are in recipe/. setup.py in the root of the repository handles the install, as well as the creation of the setupctl script via an entrypoint.

A typical development loop will consist of:

  • Create a separate Anaconda environment.
  • Running python setup.py develop, to add the source code onto your $PYTHONPATH. This is needed only once.
  • Making some changes to the package in adam/
  • Testing with pytest ./tests --cov=adam --ignore=tests/integration_tests
  • Commit, push, PR.

Installing ADAM SDK from source

Installing adamctl from source, instead of Anaconda. Do this if you're developing the ADAM SDK.

# grab the source code
git clone [email protected]:B612-Asteroid-Institute/adam_home
cd adam_home

# create a new conda environment with the necessary dev tools
conda create -n adam-dev --file conda-requirements.txt
conda activate adam-dev

# install ADAM in dev mode
python setup.py develop

Developer configurations

Sometimes you might need to use an ADAM development server (e.g. for experimental APIs or developing ADAM client/server). Create a separate ADAM configuration for that workspace.

# Set up a configuration e.g. "experimental_dev"
# The URL points to the ADAM server you specify, plus the path to the API.
# This will also set the default_env property of your configuration to "experimental_dev".
adamctl login experimental_dev https://example-adam-server.com/_ah/api/adam/v1

# Set your workspace ID. Whoever owns the development server should be
# able to create a workspace ID for you.
adamctl config envs.experimental_dev.workspace "YOUR_WORKSPACE_ID"

Updating documentation

Initial setup

You probably don't have to do the initial setup.

# In the same conda environment where you've installed ADAM:
cd adam_home
conda install sphinx sphinx_rtd_theme

# Bootstrap sphinx
sphinx-quickstart

#  Edit Makefile and change name of the source directory to doc_source.

#  Edit conf.py
 
# Auto-generate the API docs
sphinx-apidoc -o doc_source adam

# Edit index.rst to include the modules document.

# Remove doc_source/adam.tests*.rst and any references to the adam.tests package.
# This step will go away when tests get moved out of the adam package.

# Build the html documentation
make html

Re-generate documentation

cd adam_home
sphinx-apidoc --separate --force -o doc_source adam
make html
rm -rf docs
mv build/html docs

Eventually this should be part of CI/CD.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].