Module to extract data from SHEF formated files with ability to save output as flat file, HEC-DSS file, or directly into Corps water management systems (CWMS) database
Project description
Package SHEF Parser
A python based package to parse SHEF files and optionally load them into various data stores. It also provides functionality for generating SHEF text from various data stores.
Parsing and loading can be performed by using module in python or through command line. Generating SHEF text from a data store is currenly limited to using the module in python.
See User Guide at https://shef-processing.readthedocs.io/en/latest/
See API Documentation at https://hydrologicengineeringcenter.github.io/shef-parser/index.html
Install
pip install shef-parser
Loading via command line
#CWMS CDA loader
shefParser -i input_filename --loader cda[$API_ROOT][$API_KEY]
#HEC-DSS loader
shefParser -i input_filename --loader dss[<dss_file>][<sensors_file>][<parameters_file>]
Loading via module
#CWMS CDA loader
import os
from shef import shef_parser
cda_url: str = os.getenv("CDA_API_ROOT")
cda_api_key: str = os.getenv("CDA_API_KEY")
shef_parser.parse(
input_name=input_filename,
loader_spec=f"cda[{cda_url}][{cda_api_key}]",
)
#HEC-DSS loader
from shef import shef_parser
dss_filename: str = "/path/to/dss_file"
sensors_filename: str = "/path/to/sensors_file"
parameters_filename: str = "/path/to/parameters_file"
shef_parser.parse(
input_name=input_filename,
loader_spec=f"dss[{dss_filename}][{sensors_filename}][{parameters_filename}]",
)
Generating SHEF Text
Exporting via command line
#CWMS CDA loader
#et and st can be either ISO date formate 2026-02-01T11:00:00 or use HEC time T, T-1D, T-5Hr, 02Feb2026, ect...)
#either timeseries group ID can be used or the -tsids parameter with a list of timeseries ids ("tsid1,tsid2,...")
shefParser export -a api_root -o office -f filename.shef -st start_time -et end_time -tdg <Timesereis Group ID>
shefParser export -a api_root -o MVP -f filename.shef -st T-2D -et T -tdg KEYS
#CWMS CDA loader
import os
from datetime import datetime, timedelta
from shef import shef_parser
cda_url: str = os.getenv("CDA_API_ROOT")
office_id: str = os.getenv("CDA_OFFICE_ID")
tsids: list[str] = [
...
]
export_file="/path/to/output_file"
shef_parser.export(
api_root=cda_url,
office=office_id,
export_file=export_file,
timeseries_ids=tsids,
start_time=datetime.now(),
end_time=datetime.now() - timedelta(days=1),
)
#HEC-DSS loader
from datetime import datetime, timedelta
from shef.exporters import DssExporter
dss_filename: str = "/path_to_dss_file"
sensors_filename: str = "/path/to/sensors_file"
parameters_filename: str = "/path/to/parameters_file"
pathnames: list[str] = [
...
]
exporter = DssExporter(
dss_filename,
sensors_filename,
parameters_filename
)
exporter.start_time = datetime.now() - timedelta(days=1)
exporter.end_time = datetime.now()
with open("/path/to/output_file", "w") as f:
exporter.set_output(f)
for (pathname in pathnames):
exporter.export(pathname)
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file shef_parser-1.9.0.tar.gz.
File metadata
- Download URL: shef_parser-1.9.0.tar.gz
- Upload date:
- Size: 72.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4a46d449b16b7e3c7b826cfa327945b095a19f21e5ee883c12c7607a69211658
|
|
| MD5 |
992c6ee179bced7fa9862894434037a0
|
|
| BLAKE2b-256 |
04a87754e57f5e65800c70f5473ad8014255face5264143957512727384c7b1d
|
Provenance
The following attestation bundles were made for shef_parser-1.9.0.tar.gz:
Publisher:
pypi-deploy.yml on HydrologicEngineeringCenter/SHEF_processing
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
shef_parser-1.9.0.tar.gz -
Subject digest:
4a46d449b16b7e3c7b826cfa327945b095a19f21e5ee883c12c7607a69211658 - Sigstore transparency entry: 998490150
- Sigstore integration time:
-
Permalink:
HydrologicEngineeringCenter/SHEF_processing@6ba03eab452b9ad22ed650e28ada7e004b7436f9 -
Branch / Tag:
refs/tags/v1.9.0 - Owner: https://github.com/HydrologicEngineeringCenter
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-deploy.yml@6ba03eab452b9ad22ed650e28ada7e004b7436f9 -
Trigger Event:
push
-
Statement type:
File details
Details for the file shef_parser-1.9.0-py3-none-any.whl.
File metadata
- Download URL: shef_parser-1.9.0-py3-none-any.whl
- Upload date:
- Size: 79.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3f9369bd0c4457a3dee2920a6ecc438082d3763f45c35d9017bec4cf8ac1a473
|
|
| MD5 |
6f6761084c72e3c7ab62db42aa036685
|
|
| BLAKE2b-256 |
9e51a6e3cecbcebb20f89821920baa80bca012c668f8b700f393d33f1726ed99
|
Provenance
The following attestation bundles were made for shef_parser-1.9.0-py3-none-any.whl:
Publisher:
pypi-deploy.yml on HydrologicEngineeringCenter/SHEF_processing
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
shef_parser-1.9.0-py3-none-any.whl -
Subject digest:
3f9369bd0c4457a3dee2920a6ecc438082d3763f45c35d9017bec4cf8ac1a473 - Sigstore transparency entry: 998490256
- Sigstore integration time:
-
Permalink:
HydrologicEngineeringCenter/SHEF_processing@6ba03eab452b9ad22ed650e28ada7e004b7436f9 -
Branch / Tag:
refs/tags/v1.9.0 - Owner: https://github.com/HydrologicEngineeringCenter
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-deploy.yml@6ba03eab452b9ad22ed650e28ada7e004b7436f9 -
Trigger Event:
push
-
Statement type: