https://github.com/asfhyp3/hyp3-event-monitoring

A software stack to allow users to enable event monitoring and processing of data as it becomes available

https://github.com/asfhyp3/hyp3-event-monitoring

Science Score: 26.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
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.0%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

A software stack to allow users to enable event monitoring and processing of data as it becomes available

Basic Info
  • Host: GitHub
  • Owner: ASFHyP3
  • License: bsd-3-clause
  • Language: Python
  • Default Branch: develop
  • Homepage:
  • Size: 590 KB
Statistics
  • Stars: 0
  • Watchers: 9
  • Forks: 0
  • Open Issues: 0
  • Releases: 18
Created over 5 years ago · Last pushed 10 months ago
Metadata Files
Readme Changelog License Codeowners

README.md

HyP3 Event Monitoring

A software stack that allows automatic submission of jobs to hyp3 over a specified area to easily monitor areas of interest.

Table of contents

Usage

Events represent an area of interest and a timeframe for which RTC and InSAR products will be generated. Events are managed (manually) as records in a DynamoDB table: json { "event_id": "myEvent", "wkt": "POINT (0 0)", "processing_timeframe": { "start": "2021-02-01T00:00:00+00:00", "end": "2021-03-01T00:00:00+00:00" } }

The processing_timeframe.end attribute is optional, and can extend into the future. Any additional attributes required by a client application can be included in an event record.

Event monitoring routinely searches ASF's inventory for Sentinel-1 IW SLC granules matching any registered events. For each such granule, one RTC job two InSAR jobs (for nearest and next-nearest neighbors) is automatically submitted to HyP3. Output products of HyP3 jobs are automatically migrated to an S3 bucket with public read permissions for long term archival and distribution.

A public REST API is provided to query events and products: - /events returns all registered events - /events/<event_id> returns the requested event with a list of its products - /recent_products returns all products processed in the last week

Deployment

Prerequisites

These resources are required for a successful deployment, but managed separately:

  • HyP3 target deployment (e.g. https://hyp3-api.asf.alaska.edu)
  • S3 bucket for CloudFormation deployment artifacts
  • Earthdata Login account authorized to download data from ASF (For submitting jobs to HyP3)
    • If submitting more jobs that the defualt hyp3 quota allows you may need to have an incresed quota
  • IAM user and roles for automated CloudFormation deployments (if desired)

Stack Parameters

Review the parameters in cloudformation.yml for deploy time configuration options.

Deploy with CloudFormation

  • Install dependencies for each component (requires pip for python 3.12)

sh python -m pip install -r requirements-find-new.txt -t find_new/src python -m pip install -r requirements-api.txt -t api/src python -m pip install -r requirements-harvest-products.txt -t harvest_products/src

  • Package the CloudFormation template sh aws cloudformation package \ --template-file cloudformation.yml \ --s3-bucket <CloudFormation artifact bucket> \ --output-template-file packaged.yml

  • Deploy to AWS with CloudFormation ```sh aws cloudformation deploy \ --stack-name \ --template-file packaged.yml \ --role-arn \ --capabilities CAPABILITY_IAM \ --parameter-overrides \ "EDLUsername=" \ "EDLPassword=" \ "HyP3URL=<URL to a HyP3 deployment for the stack to use"

```

Testing

The HyP3 Event Monitoring source contains test files in tests/. To run them you need to do a bit of setup first.

  • Add components to python path sh export PYTHONPATH="${PYTHONPATH}:${PWD}/find_new/src:${PWD}/api/src:${PWD}/harvest_products/src"
  • Setup environment variables sh export $(cat tests/cfg.env | xargs)
  • Install test requirements sh python -m pip install -r requirements-all.txt

  • Run tests sh pytest tests/

Owner

  • Name: HyP3
  • Login: ASFHyP3
  • Kind: organization
  • Location: Fairbanks, AK

Alaska Satellite Facility's Hybrid Pluggable Processing Pipeline

GitHub Events

Total
  • Release event: 2
  • Delete event: 125
  • Issue comment event: 28
  • Push event: 171
  • Pull request review comment event: 7
  • Pull request event: 237
  • Pull request review event: 107
  • Create event: 126
Last Year
  • Release event: 2
  • Delete event: 125
  • Issue comment event: 28
  • Push event: 171
  • Pull request review comment event: 7
  • Pull request event: 237
  • Pull request review event: 107
  • Create event: 126

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 0
  • Total pull requests: 101
  • Average time to close issues: N/A
  • Average time to close pull requests: 3 days
  • Total issue authors: 0
  • Total pull request authors: 4
  • Average comments per issue: 0
  • Average comments per pull request: 0.17
  • Merged pull requests: 75
  • Bot issues: 0
  • Bot pull requests: 93
Past Year
  • Issues: 0
  • Pull requests: 101
  • Average time to close issues: N/A
  • Average time to close pull requests: 3 days
  • Issue authors: 0
  • Pull request authors: 4
  • Average comments per issue: 0
  • Average comments per pull request: 0.17
  • Merged pull requests: 75
  • Bot issues: 0
  • Bot pull requests: 93
Top Authors
Issue Authors
  • dependabot[bot] (2)
  • asjohnston-asf (1)
Pull Request Authors
  • dependabot[bot] (176)
  • jtherrmann (14)
  • AndrewPlayer3 (4)
  • asjohnston-asf (1)
  • jhkennedy (1)
Top Labels
Issue Labels
bumpless (2) patch (2) bug (1)
Pull Request Labels
bumpless (183) patch (117) minor (52) major (12)

Dependencies

api/requirements.txt pypi
  • Flask-Cors *
  • flask *
  • flask_api *
  • serverless_wsgi *
find_new/requirements.txt pypi
  • asf-search ==3.1.3
  • hyp3-sdk >=1.3.2
  • python-dateutil *
  • requests *
harvest_products/requirements.txt pypi
  • hyp3-sdk >=1.3.2
  • requests *
requirements-all.txt pypi
  • boto3 *
  • cfn-lint *
  • flake8 *
  • flake8-blind-except *
  • flake8-builtins *
  • flake8-import-order *
  • moto >=1.3.17dev240
  • pyYAML *
  • pytest *
  • responses >=0.12.1
.github/workflows/changelog.yml actions
.github/workflows/deploy.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v1 composite
  • aws-actions/configure-aws-credentials v1 composite
.github/workflows/release.yml actions
.github/workflows/static-analysis.yml actions
  • actions/checkout v2 composite
  • scottbrenner/cfn-lint-action master composite
.github/workflows/test.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v1 composite
database/setup.py pypi