Skip to content

Commit

Permalink
Develop (#131)
Browse files Browse the repository at this point in the history
* Issues/91 (#92)

* added citation creation tests and functionality to subscriber and downloader

* added verbose option to create_citation_file command, previously hard coded

* updated changelog (whoops) and fixed regression test:
1. Issue where the citation file now downloaded affected the counts
2. Issue where the logic for determining if a file modified time was changing or not was picking up the new citation file which _always_ gets rewritten to update the 'last accessed' date.

* updated request to include exec_info in warning; fixed issue with params not being a dictionary caused errors

* changed a warning to debug for citation file. fixed test issues

* Enable debug logging during regression tests and set max parallel workflows to 2

* added output to pytest

* fixed test to only look for downlaoded data files not citation file due to 'random' cmr errors when creating a citation.

* added mock testing and retry on 503

* added 503 fixes

Co-authored-by: Frank Greguska <[email protected]>

* fixed issues where token was not proagated to CMR queries (#95)

* Misc fixes (#101)

* added ".tiff" to default extensions to address #100

* removed 'warning' message on not downloading all data to close #99

* updated help documentation for start/end times to close #79

* added version update, updates to CHANGELOG

* added token get,delete, refresh and list operations

* Revert "added token get,delete, refresh and list operations"

This reverts commit 15aba90.

* Update python-app.yml

* updated poetry version 

Version matches build/test versions.

* Issues/98 (#107)

* added token get,delete, refresh and list operations

* Revert "added token get,delete, refresh and list operations"

This reverts commit 15aba90.

* added  EDL (not cmr-token) based get, list,delete, refresh token

* updated token regression tests

* updates and tests for subscriber moving to EDL.

* marked tests as regression test

* Update subscriber/podaac_data_downloader.py

Co-authored-by: Frank Greguska <[email protected]>

* Update subscriber/podaac_data_subscriber.py

Co-authored-by: Frank Greguska <[email protected]>

* Update subscriber/podaac_access.py

Co-authored-by: Frank Greguska <[email protected]>

* Update subscriber/podaac_access.py

Co-authored-by: Frank Greguska <[email protected]>

* Update subscriber/podaac_access.py

Co-authored-by: Frank Greguska <[email protected]>

* added exec info to errors, cleaned up some log statements

Co-authored-by: Frank Greguska <[email protected]>

* Issues/109 (#111)

* Develop (#103)

* Issues/91 (#92)

* added citation creation tests and functionality to subscriber and downloader

* added verbose option to create_citation_file command, previously hard coded

* updated changelog (whoops) and fixed regression test:
1. Issue where the citation file now downloaded affected the counts
2. Issue where the logic for determining if a file modified time was changing or not was picking up the new citation file which _always_ gets rewritten to update the 'last accessed' date.

* updated request to include exec_info in warning; fixed issue with params not being a dictionary caused errors

* changed a warning to debug for citation file. fixed test issues

* Enable debug logging during regression tests and set max parallel workflows to 2

* added output to pytest

* fixed test to only look for downlaoded data files not citation file due to 'random' cmr errors when creating a citation.

* added mock testing and retry on 503

* added 503 fixes

Co-authored-by: Frank Greguska <[email protected]>

* fixed issues where token was not proagated to CMR queries (#95)

* Misc fixes (#101)

* added ".tiff" to default extensions to address #100

* removed 'warning' message on not downloading all data to close #99

* updated help documentation for start/end times to close #79

* added version update, updates to CHANGELOG

* added token get,delete, refresh and list operations

* Revert "added token get,delete, refresh and list operations"

This reverts commit 15aba90.

* Update python-app.yml

Co-authored-by: Frank Greguska <[email protected]>

* updated poetry version 

Version matches build/test versions.

* Update README.md

* Update podaac_data_downloader.py

Fixing for issues 109 - adding capability to download by granule-name

* Update Downloader.md

Fixed the help file

* added changelog entries, regressiont ests

* added poetry lock cleanup

Co-authored-by: Frank Greguska <[email protected]>
Co-authored-by: Frank Greguska <[email protected]>
Co-authored-by: sureshshsv <[email protected]>
Co-authored-by: sureshshsv <[email protected]>

* added README information and updates (#113)

* fixed pymock issues... again

* Extension regex (#121)

* extend -e option to handle regular expressions (#115)

* Develop into Main (1.12.0) (#114)

* Issues/91 (#92)

* added citation creation tests and functionality to subscriber and downloader

* added verbose option to create_citation_file command, previously hard coded

* updated changelog (whoops) and fixed regression test:
1. Issue where the citation file now downloaded affected the counts
2. Issue where the logic for determining if a file modified time was changing or not was picking up the new citation file which _always_ gets rewritten to update the 'last accessed' date.

* updated request to include exec_info in warning; fixed issue with params not being a dictionary caused errors

* changed a warning to debug for citation file. fixed test issues

* Enable debug logging during regression tests and set max parallel workflows to 2

* added output to pytest

* fixed test to only look for downlaoded data files not citation file due to 'random' cmr errors when creating a citation.

* added mock testing and retry on 503

* added 503 fixes

Co-authored-by: Frank Greguska <[email protected]>

* fixed issues where token was not proagated to CMR queries (#95)

* Misc fixes (#101)

* added ".tiff" to default extensions to address #100

* removed 'warning' message on not downloading all data to close #99

* updated help documentation for start/end times to close #79

* added version update, updates to CHANGELOG

* added token get,delete, refresh and list operations

* Revert "added token get,delete, refresh and list operations"

This reverts commit 15aba90.

* Update python-app.yml

* updated poetry version 

Version matches build/test versions.

* Issues/98 (#107)

* added token get,delete, refresh and list operations

* Revert "added token get,delete, refresh and list operations"

This reverts commit 15aba90.

* added  EDL (not cmr-token) based get, list,delete, refresh token

* updated token regression tests

* updates and tests for subscriber moving to EDL.

* marked tests as regression test

* Update subscriber/podaac_data_downloader.py

Co-authored-by: Frank Greguska <[email protected]>

* Update subscriber/podaac_data_subscriber.py

Co-authored-by: Frank Greguska <[email protected]>

* Update subscriber/podaac_access.py

Co-authored-by: Frank Greguska <[email protected]>

* Update subscriber/podaac_access.py

Co-authored-by: Frank Greguska <[email protected]>

* Update subscriber/podaac_access.py

Co-authored-by: Frank Greguska <[email protected]>

* added exec info to errors, cleaned up some log statements

Co-authored-by: Frank Greguska <[email protected]>

* Issues/109 (#111)

* Develop (#103)

* Issues/91 (#92)

* added citation creation tests and functionality to subscriber and downloader

* added verbose option to create_citation_file command, previously hard coded

* updated changelog (whoops) and fixed regression test:
1. Issue where the citation file now downloaded affected the counts
2. Issue where the logic for determining if a file modified time was changing or not was picking up the new citation file which _always_ gets rewritten to update the 'last accessed' date.

* updated request to include exec_info in warning; fixed issue with params not being a dictionary caused errors

* changed a warning to debug for citation file. fixed test issues

* Enable debug logging during regression tests and set max parallel workflows to 2

* added output to pytest

* fixed test to only look for downlaoded data files not citation file due to 'random' cmr errors when creating a citation.

* added mock testing and retry on 503

* added 503 fixes

Co-authored-by: Frank Greguska <[email protected]>

* fixed issues where token was not proagated to CMR queries (#95)

* Misc fixes (#101)

* added ".tiff" to default extensions to address #100

* removed 'warning' message on not downloading all data to close #99

* updated help documentation for start/end times to close #79

* added version update, updates to CHANGELOG

* added token get,delete, refresh and list operations

* Revert "added token get,delete, refresh and list operations"

This reverts commit 15aba90.

* Update python-app.yml

Co-authored-by: Frank Greguska <[email protected]>

* updated poetry version 

Version matches build/test versions.

* Update README.md

* Update podaac_data_downloader.py

Fixing for issues 109 - adding capability to download by granule-name

* Update Downloader.md

Fixed the help file

* added changelog entries, regressiont ests

* added poetry lock cleanup

Co-authored-by: Frank Greguska <[email protected]>
Co-authored-by: Frank Greguska <[email protected]>
Co-authored-by: sureshshsv <[email protected]>
Co-authored-by: sureshshsv <[email protected]>

* added README information and updates (#113)

* fixed pymock issues... again

Co-authored-by: Frank Greguska <[email protected]>
Co-authored-by: Frank Greguska <[email protected]>
Co-authored-by: sureshshsv <[email protected]>
Co-authored-by: sureshshsv <[email protected]>

* extend -e option to handle regular expressions

formerly, -e could not handle PTM_\d+ extensions without the user explicitly
calling all of them.

---------

Co-authored-by: mike-gangl <[email protected]>
Co-authored-by: Frank Greguska <[email protected]>
Co-authored-by: Frank Greguska <[email protected]>
Co-authored-by: sureshshsv <[email protected]>
Co-authored-by: sureshshsv <[email protected]>

* added dcoumentation and tests for regex

* converted defaults to regexes, added gtiff test

---------

Co-authored-by: Peter Mao <[email protected]>
Co-authored-by: Frank Greguska <[email protected]>
Co-authored-by: Frank Greguska <[email protected]>
Co-authored-by: sureshshsv <[email protected]>
Co-authored-by: sureshshsv <[email protected]>

* closes 118. retries was never hit because range is not end inclusive. (#119)

* closes 118. retries was never hit ebcause range is not end inclusive.

* updated test to catch now-thrown exception

* added --dry-run option, docs, and test cases (#124)

* added --dry-run option, docs, and test cases

* Update subscriber/podaac_data_downloader.py

Added more elegant way of download limit application

Co-authored-by: Stepheny Perez <[email protected]>

---------

Co-authored-by: Stepheny Perez <[email protected]>

* Issues/70 (#117)

* added code for updating version

* added chagnelog

* moved version check into __main__ instead of on import of the module

* added sorting of releases from github to find latest release.

* added authenticated (option) access to github API to rpevent rate limiting

* separate out auth/token regression tests

* Issues/127 (#128)

* added token sensitivity filter to remove tokens from CMR queries

* added changelog updates

* updated some lingering merge issues (huh?)

* updated regression test

* updated ubuntu versions

* removed 18.04 ubuntu from workflows/actions

* version and documentation updates (#130)

---------

Co-authored-by: Frank Greguska <[email protected]>
Co-authored-by: Frank Greguska <[email protected]>
Co-authored-by: sureshshsv <[email protected]>
Co-authored-by: sureshshsv <[email protected]>
Co-authored-by: Peter Mao <[email protected]>
Co-authored-by: Stepheny Perez <[email protected]>
  • Loading branch information
7 people committed Apr 26, 2023
1 parent 99807eb commit 8b10e16
Show file tree
Hide file tree
Showing 17 changed files with 879 additions and 167 deletions.
42 changes: 40 additions & 2 deletions .github/workflows/python-app.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
matrix:
python-version: [ "3.7", "3.8", "3.9", "3.10" ]
poetry-version: [ "1.1.14" ]
os: [ ubuntu-18.04, macos-latest, windows-latest ]
os: [ ubuntu-22.04, macos-latest, windows-latest ]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
Expand All @@ -39,8 +39,10 @@ jobs:
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
poetry run flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
- name: Test with pytest
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
poetry run pytest -m "not regression"
poetry run pytest -m "not regression and not token"
- name: netrc-gen
uses: extractions/netrc@v1
with:
Expand All @@ -50,5 +52,41 @@ jobs:
- name: Regression Test with pytest
env:
PODAAC_LOGLEVEL: "DEBUG"
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
poetry run pytest -o log_cli=true --log-cli-level=DEBUG -m "regression"
auth_regression:
needs: build
strategy:
fail-fast: false
max-parallel: 1
matrix:
python-version: [ "3.7", "3.8", "3.9", "3.10" ]
poetry-version: [ "1.1.14" ]
os: [ ubuntu-22.04, macos-latest, windows-latest ]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install Poetry
uses: abatilo/[email protected]
with:
poetry-version: ${{ matrix.poetry-version }}
- name: Install dependencies
run: |
poetry install
- name: netrc-gen
uses: extractions/netrc@v1
with:
machine: urs.earthdata.nasa.gov
username: ${{ secrets.EDL_OPS_USERNAME }}
password: ${{ secrets.EDL_OPS_PASSWORD }}
- name: Regression Test with pytest
env:
PODAAC_LOGLEVEL: "DEBUG"
run: |
poetry run pytest -o log_cli=true --log-cli-level=DEBUG -m "token"
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ jobs:
fail-fast: false
matrix:
python-version: [ "3.7", "3.8", "3.9", "3.10" ]
os: [ ubuntu-18.04, macos-latest, windows-latest ]
os: [ ubuntu-22.04, macos-latest, windows-latest ]
runs-on: ${{ matrix.os }}
steps:
- name: Set up Python
Expand Down
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)

## 1.13.0
### Added
- Added --dry-run option to subscriber and downloader to view the files that _would_ be downloaded without actuall downloading them. [102](https://github.com/podaac/data-subscriber/issues/102)
- Added new feature allowing regex to be used in `--extension` `-e` options. For example using -e `PTM_\\d+` would match data files like `filename.PTM_1`, `filename.PTM_2` and `filename.PTM_10`, instead of specifying all possible combinations (`-e PTM_1, -e PTM_2, ..., -e PMT_10`) [115](https://github.com/podaac/data-subscriber/issues/115)
- Added check for updated version [70](https://github.com/podaac/data-subscriber/issues/70)
- Removed CMR Token from log messages [127](https://github.com/podaac/data-subscriber/issues/127)


## 1.12.0
### Fixed
- Added EDL based token downloading, removing CMR tokens [98](https://github.com/podaac/data-subscriber/issues/98),
Expand Down
47 changes: 26 additions & 21 deletions Downloader.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ For installation and dependency information, please see the [top-level README](R

```
$> podaac-data-downloader -h
usage: PO.DAAC bulk-data downloader [-h] -c COLLECTION -d OUTPUTDIRECTORY [--cycle SEARCH_CYCLES] [-sd STARTDATE] [-ed ENDDATE] [-f] [-b BBOX] [-dc] [-dydoy] [-dymd] [-dy] [--offset OFFSET] [-e EXTENSIONS] [--granule-name GRANULE] [--process PROCESS_CMD] [--version] [--verbose] [-p PROVIDER] [--limit LIMIT]
usage: PO.DAAC bulk-data downloader [-h] -c COLLECTION -d OUTPUTDIRECTORY [--cycle SEARCH_CYCLES] [-sd STARTDATE] [-ed ENDDATE] [-f] [-b BBOX] [-dc] [-dydoy] [-dymd] [-dy] [--offset OFFSET] [-e EXTENSIONS] [-gr GRANULENAME] [--process PROCESS_CMD] [--version] [--verbose] [-p PROVIDER] [--limit LIMIT] [--dry-run]
optional arguments:
-h, --help show this help message and exit
Expand All @@ -17,44 +17,39 @@ optional arguments:
--cycle SEARCH_CYCLES
Cycle number for determining downloads. can be repeated for multiple cycles
-sd STARTDATE, --start-date STARTDATE
The ISO date time before which data should be retrieved. For Example, --start-date 2021-01-14T00:00:00Z
The ISO date time after which data should be retrieved. For Example, --start-date 2021-01-14T00:00:00Z
-ed ENDDATE, --end-date ENDDATE
The ISO date time after which data should be retrieved. For Example, --end-date 2021-01-14T00:00:00Z
-f, --force
Flag to force downloading files that are listed in CMR query, even if the file exists and checksum matches
The ISO date time before which data should be retrieved. For Example, --end-date 2021-01-14T00:00:00Z
-f, --force Flag to force downloading files that are listed in CMR query, even if the file exists and checksum matches
-b BBOX, --bounds BBOX
The bounding rectangle to filter result in. Format is W Longitude,S Latitude,E Longitude,N Latitude without
spaces. Due to an issue with parsing arguments, to use this command, please use the -b="-180,-90,180,90" syntax
when calling from the command line. Default: "-180,-90,180,90".
The bounding rectangle to filter result in. Format is W Longitude,S Latitude,E Longitude,N Latitude without spaces. Due to an issue with parsing arguments, to use this command, please use the -b="-180,-90,180,90" syntax when calling from the command line.
Default: "-180,-90,180,90".
-dc Flag to use cycle number for directory where data products will be downloaded.
-dydoy Flag to use start time (Year/DOY) of downloaded data for directory where data products will be downloaded.
-dymd Flag to use start time (Year/Month/Day) of downloaded data for directory where data products will be
downloaded.
-dymd Flag to use start time (Year/Month/Day) of downloaded data for directory where data products will be downloaded.
-dy Flag to use start time (Year) of downloaded data for directory where data products will be downloaded.
--offset OFFSET Flag used to shift timestamp. Units are in hours, e.g. 10 or -10.
-e EXTENSIONS, --extensions EXTENSIONS
The extensions of products to download. Default is [.nc, .h5, .zip, .tar.gz]
-gr GRANULE, --granule-name GRANULE
The name of the granule to download. Only one granule name can be specified. Script will download all files matching similar granule name sans extension.
Regexps of extensions of products to download. Default is [.nc, .h5, .zip, .tar.gz, .tiff]
-gr GRANULENAME, --granule-name GRANULENAME
Flag to download specific granule from a collection. This parameter can only be used if you know the granule name. Only one granule name can be supplied
--process PROCESS_CMD
Processing command to run on each downloaded file (e.g., compression). Can be specified multiple times.
--version Display script version information and exit.
--verbose Verbose mode.
-p PROVIDER, --provider PROVIDER
Specify a provider for collection search. Default is POCLOUD.
--limit LIMIT Integer limit for number of granules to download. Useful in testing. Defaults to 2000
--limit LIMIT Integer limit for number of granules to download. Useful in testing. Defaults to no limit.
--dry-run Search and identify files to download, but do not actually download them
```

##Run the Script

## Step 2: Run the Script

Usage:
```
usage: PO.DAAC bulk-data downloader [-h] -c COLLECTION -d OUTPUTDIRECTORY [--cycle SEARCH_CYCLES] [-sd STARTDATE] [-ed ENDDATE] [-f]
[-b BBOX] [-dc] [-dydoy] [-dymd] [-dy] [--offset OFFSET] [-e EXTENSIONS] [--process PROCESS_CMD]
[--version] [--verbose] [-p PROVIDER] [--limit LIMIT]
usage: PO.DAAC bulk-data downloader [-h] -c COLLECTION -d OUTPUTDIRECTORY [--cycle SEARCH_CYCLES] [-sd STARTDATE] [-ed ENDDATE] [-f] [-b BBOX] [-dc] [-dydoy] [-dymd] [-dy] [--offset OFFSET] [-e EXTENSIONS] [-gr GRANULENAME] [--process PROCESS_CMD] [--version] [--verbose]
[-p PROVIDER] [--limit LIMIT] [--dry-run]
```

To run the script, the following parameters are required:
Expand Down Expand Up @@ -215,17 +210,27 @@ podaac-data-downloader -c VIIRS_N20-OSPO-L2P-v2.61 -d ./data -b="-180,-90,180,90

### Setting extensions

Some collections have many files. To download a specific set of files, you can set the extensions on which downloads are filtered. By default, ".nc", ".h5", and ".zip" files are downloaded by default.
Some collections have many files. To download a specific set of files, you can set the extensions on which downloads are filtered. By default, ".nc", ".h5", and ".zip" files are downloaded by default. The `-e` option is a regular expression check so you can do advanced things like `-e PTM_\\d+` to match `PTM_` followed by one or more digits- useful when the ending of a file has no suffix and has a number (1-12 for PTM, in this example)

```
-e EXTENSIONS, --extensions EXTENSIONS
The extensions of products to download. Default is [.nc, .h5, .zip]
Regexps of extensions of products to download. Default is [.nc, .h5, .zip, .tar.gz, .tiff]
```

An example of the -e usage- note the -e option is additive:
```
podaac-data-subscriber -c VIIRS_N20-OSPO-L2P-v2.61 -d ./data -e .nc -e .h5 -sd 2020-06-01T00:46:02Z -ed 2020-07-01T00:46:02Z
```

One may also specify a regular expression to select files. For example, the following are equivalent:

`podaac-data-subscriber -c VIIRS_N20-OSPO-L2P-v2.61 -d ./data -e PTM_1, -e PTM_2, ..., -e PMT_10 -sd 2020-06-01T00:46:02Z -ed 2020-07-01T00:46:02Z`

and

`podaac-data-subscriber -c VIIRS_N20-OSPO-L2P-v2.61 -d ./data -e PTM_\\d+ -sd 2020-06-01T00:46:02Z -ed 2020-07-01T00:46:02Z`


### run a post download process

Using the `--process` option, you can run a simple command agaisnt the "just" downloaded file. This will take the format of "<command> <path/to/file>". This means you can run a command like `--process gzip` to gzip all downloaded files. We do not support more advanced processes at this time (piping, running a process on a directory, etc).
Expand Down
18 changes: 13 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,16 +37,16 @@ pip install podaac-data-subscriber
you should now have access to the downloader and subscriber Command line interfaces:

```
$> podaac-data-subscriber -h
usage: podaac_data_subscriber.py [-h] -c COLLECTION -d OUTPUTDIRECTORY [-sd STARTDATE] [-ed ENDDATE] [-b BBOX] [-dc] [-dydoy] [-dymd] [-dy] [--offset OFFSET] [-m MINUTES]
[-e EXTENSIONS] [--process PROCESS_CMD] [--version] [--verbose] [-p PROVIDER]
$> usage: PO.DAAC data subscriber [-h] -c COLLECTION -d OUTPUTDIRECTORY [-f] [-sd STARTDATE] [-ed ENDDATE] [-b BBOX] [-dc] [-dydoy] [-dymd] [-dy] [--offset OFFSET] [-m MINUTES]
[-e EXTENSIONS] [--process PROCESS_CMD] [--version] [--verbose] [-p PROVIDER] [--dry-run]
...
```

```
$> podaac-data-downloader -h
usage: PO.DAAC bulk-data downloader [-h] -c COLLECTION -d OUTPUTDIRECTORY [--cycle SEARCH_CYCLES] [-sd STARTDATE] [-ed ENDDATE] [-b BBOX] [-dc] [-dydoy] [-dymd] [-dy] [--offset OFFSET] [-e EXTENSIONS] [--process PROCESS_CMD] [--version] [--verbose] [-p PROVIDER] [--limit LIMIT]
$> usage: PO.DAAC bulk-data downloader [-h] -c COLLECTION -d OUTPUTDIRECTORY [--cycle SEARCH_CYCLES] [-sd STARTDATE] [-ed ENDDATE] [-f] [-b BBOX] [-dc] [-dydoy] [-dymd] [-dy]
[--offset OFFSET] [-e EXTENSIONS] [-gr GRANULENAME] [--process PROCESS_CMD] [--version] [--verbose] [-p PROVIDER] [--limit LIMIT] [--dry-run]
...
```
Expand Down Expand Up @@ -114,6 +114,14 @@ export PODAAC_LOGLEVEL=DEBUG

And then run the script. This should give you more verbose output on URL requests to CMR, tokens, etc.

### OTHER OPTIONS

The podaac downloader and subscriber make calls to github for checking recent releases. Unauthenticated requests are limited to 60 per hour. If you start seeing errors like:
```
releases_json = {'documentation_url': 'https://docs.github.com/rest/overview/resources-in-the-rest-api#rate-limiting', 'message': "API... here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)"}
```
You'll want to set the environment variable GITHUB_TOKEN to a github personal access token- this allows for up to 5000 calls per hour. This requires a free github account. Most users will not run in to this issue.


### In need of Help?
The PO.DAAC User Services Office is the primary point of contact for answering your questions concerning data and information held by the PO.DAAC. User Services staff members are knowledgeable about both the data ordering system and the data products themselves. We answer questions about data, route requests to other DAACs, and direct questions we cannot answer to the appropriate information source.
Expand Down
Loading

0 comments on commit 8b10e16

Please sign in to comment.