Oceanic and Atmospheric Functions
Project description
OAFuncs
Oceanic and Atmospheric Functions for Python.
OAFuncs provides utilities for NetCDF files, geoscience arrays, plotting, geographic masks, downloads, file operations, model data, and small workflow tools.
Installation
pip install oafuncs
Optional dependency groups:
data, interp, nc, draw, geo, down, office, parallel, sign, science, all, full
Package Structure
oafuncs
|-- oa_nc.py NetCDF utilities
|-- oa_data.py data interpolation helpers
|-- oa_geo.py geographic and land/ocean mask helpers
|-- oa_draw.py plotting helpers
|-- oa_cmap.py colormap helpers
|-- oa_file.py file operation helpers
|-- oa_date.py date and timing helpers
|-- oa_down/ download helpers
|-- oa_model/ ROMS and WRF helpers
|-- oa_linux.py Linux, HPC, and Slurm helpers
|-- oa_office.py Office document helpers
|-- oa_sign/ website sign-in helpers
`-- oa_tool.py command, progress bar, email, and parallel helpers
Public API
oa_nc
| Function | Purpose |
|---|---|
save |
Write arrays, DataArrays, or Datasets to NetCDF. |
merge |
Merge multiple NetCDF files. |
modify |
Modify a variable value or variable attribute. |
rename |
Rename a NetCDF variable or dimension. |
check |
Check whether a NetCDF file is readable. |
convert_longitude |
Convert longitude coordinates between [-180, 180] and [0, 360]. |
isel |
Select NetCDF data by dimension indices. |
draw |
Plot variables from a NetCDF file or xarray object. |
compress |
Apply NetCDF compression. |
unscale |
Decode and remove scale_factor / add_offset storage encoding. |
oa_data
| Function | Purpose |
|---|---|
ensure_list |
Convert a value to a list. |
interp_vertical |
Interpolate along the fixed z axis in [t, z, y, x] order. |
interp_horizontal |
Interpolate horizontal fields over the fixed y, x axes. |
oa_geo
| Function | Purpose |
|---|---|
earth_distance |
Calculate great-circle distance between two lon/lat points. |
mask_shapefile |
Mask a 2D field using a shapefile. |
mask_land_ocean |
Keep land or ocean values using a land/ocean mask. |
is_land |
Check whether a lon/lat point is on land. |
is_ocean |
Check whether a lon/lat point is in the ocean. |
oa_draw
| Function | Purpose |
|---|---|
fig_minus |
Format minus signs in axis or colorbar tick labels. |
gif |
Create a GIF from image files. |
movie |
Create a video from image files. |
setup_map |
Configure a Cartopy map. |
ticks_symmetric |
Generate ticks symmetric around a center value. |
font_CN |
Configure Chinese font support for Matplotlib. |
oa_cmap
| Function | Purpose |
|---|---|
show |
Preview a colormap. |
to_color |
Convert a colormap to a list of colors. |
create |
Create a custom colormap from colors or an RGB text file. |
get |
Load a Matplotlib or custom colormap. |
random_color |
Generate a random hex color. |
oa_file
| Function | Purpose |
|---|---|
script_dir |
Return the caller script directory, independent of current working directory. |
find |
Find files by pattern. |
link |
Create symbolic links with wildcard support. |
copy |
Copy files or directories with wildcard support. |
move |
Move files or directories with wildcard support. |
rename |
Rename files by replacing text in filenames. |
remove_empty |
Remove empty folders recursively. |
remove |
Delete files or directories by pattern. |
size |
Return file size in the requested unit. |
replace |
Replace text content by replace_dict and save the result. |
Example:
from oafuncs.oa_file import replace
replace(
input_path="config.txt",
replace_dict={"old_value": "new_value"},
output_dir="./run",
output_name="config.txt",
)
oa_date
| Function / Class | Purpose |
|---|---|
month_days |
Return the number of days in a month. |
hour_range |
Generate datetime strings at an hourly interval. |
adjust_time |
Offset a base time by a time delta. |
timeit |
Decorator class for timing function execution. |
oa_down
| Function | Purpose |
|---|---|
download |
Download HYCOM data for one time or a time range. |
draw_time_range |
Draw the available HYCOM time range. |
download_by_doi |
Download literature files from DOI lists. |
downloader |
Send a download task to Internet Download Manager. |
get_ua |
Return the default user-agent string for download requests. |
oa_model
| Function | Purpose |
|---|---|
interp |
Interpolate and remap ROMS data to target lon/lat/depth grids. |
header_record |
Build a WRF little_r header record. |
data_record |
Build a WRF little_r data record. |
ending_record |
Build a WRF little_r ending record. |
tail_record |
Build a WRF little_r tail record. |
oa_linux
| Function | Purpose |
|---|---|
patch_slurm |
Update selected #SBATCH directives in a Slurm script. |
submit |
Submit a Slurm job with queue-aware retry logic. |
job_state |
Query Slurm job state. |
is_linux |
Check whether the current system is Linux. |
get_jobid |
Find a Slurm job ID by path or job name. |
oa_office
| Function | Purpose |
|---|---|
extract_pptx_notes |
Extract PowerPoint notes to a Word document. |
oa_sign
| Function | Purpose |
|---|---|
sign_in_love_ocean |
Sign in to 52ocean. |
sign_in_meteorological_home |
Sign in to Meteorological Home. |
sign_in_scientific_research |
Sign in to AbleSci. |
oa_tool
| Function / Class | Purpose |
|---|---|
run_command |
Run an external command safely without using a shell. |
Pex |
Parallel executor wrapper with progress and timing. PEx remains as a deprecated compatibility alias until 2026-12-22. |
email |
Send an email. |
pbar |
Create a colored progress bar. |
Links
- PyPI: https://pypi.org/project/oafuncs
- GitHub: https://github.com/OAKun/OAFuncs
- Download stats: https://pypistats.org/packages/oafuncs
- Wiki: https://deepwiki.com/OAKun/OAFuncs
License
MIT License. See LICENSE.txt.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
oafuncs-0.0.99.51.tar.gz
(132.9 kB
view details)
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
oafuncs-0.0.99.51-py3-none-any.whl
(138.4 kB
view details)
File details
Details for the file oafuncs-0.0.99.51.tar.gz.
File metadata
- Download URL: oafuncs-0.0.99.51.tar.gz
- Upload date:
- Size: 132.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9ea7fb8463164208137727849658fcde4146c4bbd7300a8221d04ca17db331e5
|
|
| MD5 |
201e32aa8a0ca49847c7a0413e5428c9
|
|
| BLAKE2b-256 |
bfd9d27f175926b434fa55e9dbdbae88bcd586e936432a4ac06ab12e322df537
|
File details
Details for the file oafuncs-0.0.99.51-py3-none-any.whl.
File metadata
- Download URL: oafuncs-0.0.99.51-py3-none-any.whl
- Upload date:
- Size: 138.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3a93972b4f6bd57e61de7f2d06c34ca385f987df4c9cb7796a6a41d3082f37fa
|
|
| MD5 |
64d4ad053f197eaa4c182a7619b37420
|
|
| BLAKE2b-256 |
0624862a79dd6f04f6fd721bcea4826d4e88826eaf85f450a220915b01dcd192
|