US Army Corps of Engineers
usace / cumulus Goto Github PK
View Code? Open in Web Editor NEWCumulus project issue tracking and project planning
License: MIT License
Cumulus project issue tracking and project planning
License: MIT License
There are now many different services in the cumulus-api
repository. Migrate the user interface into the cumulus-api
repository and move repository USACE/cumulus-api
--> USACE/cumulus
.
automate local db container to load schema/seed data from scratch on start
All github actions jobs may not be required, depending upon which file in the repository changes. Separate github actions so only necessary build and deploy steps are triggered. For example, do not rebuild packager container if only a file in the REST API was changed.
Add new API endpoints for addition/modification/deletion of user's watersheds (or watershed favorites). Adjust UI to connect to new endpoints.
Change API Root URL to: https://water-api.rsgis.dev/cumulus/v1
DAG to download raw files from NCEP and write to S3
Adjust database tables, add/modify API end points to support user's downloads for dashboard. Adjust UI to display new endpoint data.
Grid projection not defined properly. Grid info defined as Albers does not show proper meta data.
Change pip install location of pydsstools to USACE/pydsstools develop branch in this requirements.txt file:
https://github.com/USACE/cumulus-api/blob/develop/async_packager/packager/requirements.txt
Environment Variables for Overriding Usual AWS Credentials for SQS Configuration are:
AWS_ACCESS_KEY_ID_SQS
AWS_SECRET_ACCESS_KEY_SQS
AWS_REGION_SQS
If these variables are unset, set them to the default AWS environment variables for user credentials. Specifically:
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
AWS_REGION
This will allow these values in development using docker-compose:
AWS_ACCESS_KEY_ID_SQS=x
AWS_SECRET_ACCESS_KEY_SQS=x
AWS_REGION_SQS=elasticmq
When deployed in AWS, the variables suffixed with _SQS will be unset and the configuration variables will be set to the AWS usual variables set in the environment (without the _SQS suffix).
Allow users to create DSS Downloads from the web User Interface. Implement as a modal on /dashboard
route, near recent downloads
component.
async_packager
and async_statistics
- to easily interact with the database via the http API using http://api:3030/
.Additional productfile seed data is needed for local testing of downloads and user interface. Create local script to generate database inserts. Script will use the AWS api to fetch products and product files. An adjustable time window will be used in local script. Script will output the sql file into the database folder for auto consumption on db container start.
๐จ Planning in Progress
Tables:
basin (columbia river)
subbasin (all subbasins, all major trib)
subbasin_group ("subbasin", "major trib")
subbasin_group_subbasins (many-to-many)
Initial GET Endpoints
List Basin Groups for Given Basin
GET /cumulus/basins/columbia-river/subbasin_groups
- Payload: [
{id: uuid, name: 'Subbasins', slug: 'subbasins'},
{id: uuid, name: 'Major Trib', slug: 'major-trib'},
{id: uuid, name: 'Basin', slug: 'basin'}
]
Get Basin Group
GET /cumulus/basins/columbia-river/basin_groups/subbasins
- Payload: { id: 'uuid', name: 'Subbasin', slug: 'subbasin', basins: [{id: uuid, name: "", slug: ""}, {}, {}]}
DSS dPart time should be "0000" for midnight (not 2400) unless data_type is INST-VAL.
Download available archive which looks to go back to Jan 2011.
Functional tests are written using postman. Automate a way to run the functional tests against the API running in the docker-compose
stack locally. This puts the foundation in place to run the tests automated on code commit (to be completed as part of a separate issue).
As the data time window increases or the number of products increases, the payload length sent to SQS also increases. Refactor messaging so a UUID for a download request is sent to the message queue. Then implement a single query of the API in the worker.
/basins
endpoint and fix associated ripple effectsInvestigating solution to DSS Grid creation with pydsstools always results in the grid origin (lower-left) is always at zero. Focusing on pydsstools
C-bindings and gridInfo()
.
Add new table structure to support watershed and area groups concept.
RESTful API Endpoints for Watersheds
dpart should be 2400 instead of 0000 at midnight for inst grids (like airtemp)
Add apache airflow for data processing pipelines.
"ncep_rtma_ru_ges_airtemp" had no productfiles in dev. One download record and download_product record was present. They were removed from dev.
Fix outdated regression tests. Ensure the regression test suite runs from top to bottom. This will serve as the baseline test suite to be run before merge to develop
branch. Tests should be expanded / improved as new capabilities and endpoints are added.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.