Skip to content

Repository files navigation

CWMSpy

CWMS REST API for Data Retrieval

Requirements.

Python 3.9+

Installation & Usage

pip install

pip install cwms-python

Then import the package:

importcwms

Authentication

cwms.init_session() supports both CDA API keys and Keycloak access tokens. Use api_key= for the headless CDA API key flow, or token= for an OIDC access token such as one saved by cwms-cli login.

importcwmscwms.init_session(
api_root="https://cwms-data.usace.army.mil/cwms-data/",
token="ACCESS_TOKEN",
)

If both token and api_key are provided, cwms-python will use the token and log a warning.

Getting Started

importcwmsfromdatetimeimportdatetime, timedeltaend=datetime.now()
begin=end-timedelta(days=10)
data=cwms.get_timeseries(ts_id='Some.Fully.Qualified.Ts.Id',office_id='OFFICE1' , begin=begin, end=end)
#a cwms data object will be provided this object containes both the JSON as well#as the values converted into a dataframe#display the dataframedf=data.dfprint(df)
 date-time value quality-code
0 2024-04-23 08:15:00 86.57 3
1 2024-04-23 08:30:00 86.57 3
2 2024-04-23 08:45:00 86.58 3
3 2024-04-23 09:00:00 86.58 3
4 2024-04-23 09:15:00 86.58 3
5 2024-04-23 09:30:00 86.58 3
6 2024-04-23 09:45:00 86.59 3
7 2024-04-23 10:00:00 86.58 3
#display JSONjson=data.JSONprint(json)
{'name': 'Some.Fully.Qualified.Ts.Id',
'office-id': 'MVP',
'units': 'ft',
'values': [['2024-04-23T08:15:00', 86.57, 3],
['2024-04-23T08:30:00', 86.57, 3],
['2024-04-23T08:45:00', 86.57999999999997, 3],
['2024-04-23T09:00:00', 86.57999999999997, 3],
['2024-04-23T09:15:00', 86.57999999999997, 3],
['2024-04-23T09:30:00', 86.57999999999997, 3],
['2024-04-23T09:45:00', 86.59, 3],
['2024-04-23T10:00:00', 86.57999999999997, 3]],
'version-date': None}

TimeSeries Profile API Compatibility Warning

Currently, the TimeSeries Profile API may not be fully supported until a new version of cwms-data-access is released with the updated endpoint implementation.

Contributing

Please view the contribution documentation here: [CONTRIBUTING.md]

About

Corps Water Management Systems (CWMS) library utilizing CWMS Data API

Resources

Contributing

Stars

15 stars

Watchers

6 watching

Forks

Releases

Packages

Used by

Contributors

Languages