The CMR Notifier project provides public AWS SNS Topics that monitoring applications can subscribe to for new granule notification. Currently, this repository provides this topic:
-
New Sentinel-1 SLC and burst granules:
arn:aws:sns:us-west-2:192755178564:ASF-sentinel1-cmr-notifier-prod`which will broadcast messages like:
{ "granule_ur": "S1C_WV_SLC__1SSV_20250328T085056_20250328T085537_001639_002A31_AE2A-SLC", "metadata_url": "https://cmr.earthdata.nasa.gov/search/granules.umm_json?provider=ASF&granule_ur=S1C_WV_SLC__1SSV_20250328T085056_20250328T085537_001639_002A31_AE2A-SLC", "access_urls": ["https://datapool.asf.alaska.edu/SLC/SC/S1C_WV_SLC__1SSV_20250328T085056_20250328T085537_001639_002A31_AE2A.zip"] }
Tip
If you're interested in notification for another ASF-managed dataset, let us know by opening an issue: https://github.com/ASFHyP3/CMR-notifier/issues/new
Important
The topics provided here only allow subscriptions using the AWS SQS and Lambda protocols.
Here is an example of a minimal CloudFormation template, which when deployed, will create a Sentinel-1 subscription for an AWS SQS Queue:
Parameters:
QueueArn:
Type: String
Resources:
Sentinel1Subscription:
Type: AWS::SNS::Subscription
Properties:
TopicArn: arn:aws:sns:us-west-2:192755178564:ASF-sentinel1-cmr-notifier-prod
Protocol: sqs
Endpoint: !Ref QueueArnYou can add a FilterPolicy to the subscription properties so that only the messages you are interested in are accepted:
https://docs.aws.amazon.com/sns/latest/dg/sns-subscription-filter-policies.html
For example, this policy will only accept Sentinel-1 Bursts messages:
FilterPolicyScope: MessageBody
FilterPolicy:
granule_ur:
- suffix: '-BURST'Or, this policy will only accept Sentinel-1C SLC messages:
FilterPolicyScope: MessageBody
FilterPolicy:
granule_ur:
- prefix: 'S1C_'
- suffix: '-SLC'This project uses pixi to manage software environments. To get started:
- Ensure that
pixiis installed on your system: https://pixi.sh/latest/installation/. - Clone this repository and navigate to the root directory of this project
git clone https://github.com/ASFHyP3/CMR-notifier.git cd CMR-notifier - Setup the development environment
pixi run python -VV
- (Optional) Activate the environment. Either:
- use the pixi shell:
pixi shell
- or, for traditional conda-like activation, run:
eval "$(pixi shell-hook)"
- use the pixi shell:
Tip
If you've done (4), you don't need to prefix commands with pixi run.
- (Optional) Setup you IDE to work with pixi:
We use pixi as a task runner (similar to a make). To see all available tasks, run:
pixi task listWhen developing a new feature, you can ensure the code passes all static analyses and tests by running:
pixi run static
pixi run tests