maap-api-nasa
NASA Python implementation of the MAAP API specification
Science Score: 36.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
✓Committers with academic emails
6 of 18 committers (33.3%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (12.9%) to scientific vocabulary
Keywords from Contributors
Repository
NASA Python implementation of the MAAP API specification
Basic Info
- Host: GitHub
- Owner: MAAP-Project
- License: apache-2.0
- Language: Python
- Default Branch: main
- Homepage: https://api.maap-project.org/api
- Size: 2 MB
Statistics
- Stars: 9
- Watchers: 6
- Forks: 4
- Open Issues: 14
- Releases: 53
Metadata Files
README.md
NASA MAAP API
The joint ESA-NASA Multi-Mission Algorithm and Analysis Platform (MAAP) focuses on developing a collaborative data system enabling collocated data, processing, and analysis tools for NASA and ESA datasets. The NASA MAAP API adheres to the joint ESA-NASA MAAP API specification currently in development. This joint architectural approach enables NASA and ESA to each run independent MAAPs, while ultimately sharing common facilities to share and integrate collocated platform services.
Development server: https://api.dit.maap-project.org/api
I. Local development using docker
bash
cd docker
docker-compose -f docker-compose-local.yml up
II. Local development using poetry and virtualenv
Prerequisites:
* poetry
* https://python-poetry.org/docs/#installation
* postgresql
* Linux: sudo apt-get install postgresql python-psycopy2 libpq-dev
* Mac OSx: brew install postgresql
* python3.9+
bash
cd maap-api-nasa
poetry install
First run: Configure the database.
Add a new user called
maapuser(A fix for 'roledoes not exist') NOTE: You may need to use
sudo -u postgresbefore postgres commands.bash createuser maapuserCreate an empty postgres db (maap) (a fix for 'database maap does not exist'):
bash createdatabase maapOPTIONAL: PyCharm configuration, if using the PyCharm IDE:
- Script path:
./api/maapapp.py - Environment variables:
PYTHONUNBUFFERED=1 - Python interpreter:
Python 3.9 - Working directory:
./api
(Obsolete?) Config Titiler endpoint and maap-api-host
In the settings.py (i.e., maap-api-nasa/api/settings.py):
```python
settings.py
APIHOSTURL = 'http://0.0.0.0:5000/' # For local testing
...
The endpoint obtained after doing Titiler deployment
TILER_ENDPOINT = 'https://XXX.execute-api.us-east-1.amazonaws.com'
If running the tiler locally, this can be TILER_ENDPOINT = 'http://localhost:8000'
```
Run the app:
bash
poetry shell
FLASK_APP=api/maapapp.py flask run --host=0.0.0.0
Some issues you may experience while running the above line:
- Allowing using postgres without login (A fix for 'fe_sendauth: no password supplied'):
bash
sudo vi /etc/postgresql/9.5/main/pg_hba.conf #(the location may be different depend on OS and postgres version)
# Reconfig as follows:
local all all trust
host all all 127.0.0.1/32 trust
host all all ::1/0 trust
# Save pg_hba.conf
bash
# Restart postgresql
sudo /etc/init.d/postgresql reload
sudo /etc/init.d/postgresql start
Running tests
When using docker-compose to start the app it is possible to run the tests locally if you first
update the settings.py DATABASE_URL value to specify localhost as the servername instead of db
(DO NOT check in this change).
bash
python -m unittest test/api/endpoints/test_wmts_get_tile.py
If you are running the latest version of Titiler, use the following local test scripts: while keeping the server in the previous step running (i.e., local maap-api-nasa). Open a new terminal
```bash poetry env use $(poetry env info -e)
If you are running the latest version of Titiler, then use the following test scripts:
python -m unittest -v test/api/endpoints/testwmtsgettilenewtitiler.py python -m unittest -v test/api/endpoints/testwmtsgetcapabilitiesnewtitiler.py ```
III. User Accounts
A valid MAAP API token must be included in the header for any API request. An Earthdata account is required to access the MAAP API. To obtain a token, URS credentials must be provided as shown below:
bash
curl -X POST --header "Content-Type: application/json" -d "{ \"username\": \"urs_username\", \"password\": \"urs_password\" }" https://api.dit.maap-project.org/token
Comments:
After running the local maap-api-nasa, go to http://0.0.0.0:5000/api to see the APIs.
Or running the your own test scripts with:
bash
curl -X POST --header "Content-Type: application/json" -d "{ \"username\": \"urs_username\", \"password\": \"urs_password\" }" http://0.0.0.0:5000/token
Owner
- Name: MAAP-Project
- Login: MAAP-Project
- Kind: organization
- Repositories: 99
- Profile: https://github.com/MAAP-Project
GitHub Events
Total
- Create event: 43
- Issues event: 6
- Release event: 15
- Watch event: 1
- Delete event: 22
- Member event: 1
- Issue comment event: 45
- Push event: 218
- Pull request review comment event: 11
- Pull request review event: 25
- Pull request event: 36
- Fork event: 1
Last Year
- Create event: 43
- Issues event: 6
- Release event: 15
- Watch event: 1
- Delete event: 22
- Member event: 1
- Issue comment event: 45
- Push event: 218
- Pull request review comment event: 11
- Pull request review event: 25
- Pull request event: 36
- Fork event: 1
Committers
Last synced: 11 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| bsatoriu | b****s@j****v | 208 |
| Aimee Barciauskas | a****e@d****g | 81 |
| namratam | n****g@g****m | 69 |
| Malarout | n****t@j****v | 54 |
| bsatoriu | b****u@j****v | 46 |
| grallewellyn | g****n@j****v | 42 |
| Anil Natha | A****a@j****v | 23 |
| Frank Greguska | 8****e | 19 |
| TonHai1111 | t****i@g****m | 15 |
| Sujen Shah | s****2 | 14 |
| Marjorie Lucas | m****s@j****v | 10 |
| Anthony Lukach | a****h@g****m | 6 |
| Phil Varner | p****r@g****m | 5 |
| echyam | e****m@g****m | 3 |
| Chuck Daniels | c****4@g****m | 1 |
| Jamison French | j****h@g****m | 1 |
| Laura Alisic Jewell | l****l | 1 |
| Slesa Adhikari | s****d@g****m | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 11 months ago
All Time
- Total issues: 19
- Total pull requests: 154
- Average time to close issues: 2 months
- Average time to close pull requests: 12 days
- Total issue authors: 9
- Total pull request authors: 16
- Average comments per issue: 1.47
- Average comments per pull request: 0.64
- Merged pull requests: 127
- Bot issues: 0
- Bot pull requests: 2
Past Year
- Issues: 4
- Pull requests: 37
- Average time to close issues: 4 months
- Average time to close pull requests: 2 days
- Issue authors: 3
- Pull request authors: 5
- Average comments per issue: 0.25
- Average comments per pull request: 1.16
- Merged pull requests: 25
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- sujen1412 (7)
- frankinspace (4)
- marjo-luc (3)
- bsatoriu (2)
- abarciauskas-bgse (1)
- emileten (1)
- omshinde (1)
- anilnatha (1)
- wildintellect (1)
- hrodmn (1)
Pull Request Authors
- bsatoriu (73)
- sujen1412 (25)
- grallewellyn (23)
- marjo-luc (15)
- abarciauskas-bgse (13)
- anilnatha (12)
- frankinspace (10)
- TonHai1111 (5)
- NamrataM (2)
- jjfrench (2)
- philvarner (1)
- emileten (1)
- chuckwondo (1)
- dependabot[bot] (1)
- slesaad (1)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- PyJWT *
- Werkzeug ==0.16.1
- boto3 ==1.9.199
- flask *
- flask-restplus *
- flask_sqlalchemy *
- gitpython *
- mapproxy *
- marshmallow-sqlalchemy *
- natsort *
- owslib *
- pillow *
- psycopg2 *
- pycryptodome *
- pyproj ==1.9.6
- pyshp *
- requests *
- requests_file *
- xmltodict *
- python 3.9 build
- maap-api-nasa latest
- postgres 14.5