model_catalogs
==============================
[![Build Status](https://img.shields.io/github/actions/workflow/status/NOAA-ORR-ERD/model_catalogs/test.yaml?branch=main&logo=github&style=for-the-badge)](https://github.com/axiom-data-science/model_catalogs/actions/workflows/test.yaml)
[![Code Coverage](https://img.shields.io/codecov/c/github/NOAA-ORR-ERD/model_catalogs.svg?style=for-the-badge)](https://codecov.io/gh/NOAA-ORR-ERD/model_catalogs)
[![License:MIT](https://img.shields.io/badge/License-MIT-green.svg?style=for-the-badge)](https://opensource.org/licenses/MIT)
[![Documentation Status](https://img.shields.io/readthedocs/model_catalogs/latest.svg?style=for-the-badge)](https://model_catalogs.readthedocs.io/en/latest/?badge=latest)
[![Code Style Status](https://img.shields.io/github/actions/workflow/status/NOAA-ORR-ERD/model_catalogs/linting.yaml?branch=main&label=Code%20Style&style=for-the-badge)](https://github.com/NOAA-ORR-ERD/model_catalogs/actions/workflows/linting.yaml)
[![Conda Version](https://img.shields.io/conda/vn/conda-forge/model_catalogs.svg?style=for-the-badge)](https://anaconda.org/conda-forge/model_catalogs)
[![Python Package Index](https://img.shields.io/pypi/v/model_catalogs.svg?style=for-the-badge)](https://pypi.org/project/model_catalogs)
Provides access through Intake catalogs to a set of ocean models, especially the NOAA OFS models. In particular, this package is good for working with unaggregated NOAA OFS models.
Specific functionality includes:
* Sets up an `Intake` catalog for known models to provide direct access to model output.
* Provides access to model output as an `xarray` Dataset.
* Models are known by their catalog files; see set [here](https://github.com/NOAA-ORR-ERD/model_catalogs/tree/main/model_catalogs/catalogs/orig). They include
* NOAA OFS Models:
* CBOFS
* CIOFS
* CREOFS
* DBOFS
* GOMOFS
* LEOFS
* LMHOFS
* LOOFS
* NGOFS2
* NYOFS
* SFBOFS
* TBOFS
* WCOFS
* Full 3D fields, or regularly gridded or 2D versions when available
* GFS models
* Global GOFS HYCOM
* RTOFS models
* Multiple time ranges and sources of model output are provided when known. For example for the NOAA OFS models there are both forecast and historical sources for all models, and some have others as well.
* `model_catalogs` knows how to aggregate NOAA OFS model output between nowcast and forecast files.
* Known models have cleaned up and filled-in metadata so they are easy to work with in `xarray` and with `cf-xarray`.
* `cf-xarray` will understand dimension and coordinate names, as well as a set of standard_names mapped to the variables.
* Metadata about models is included in the `Intake` catalogs, such as:
* polygon boundary of numerical domain
* grid parameters
* arguments for optimal read-in with `xarray`
* Can request the availability of each model source.
## Installation
### PyPI
To install from PyPI:
``` base
pip install model_catalogs
```
### conda-forge
To install from conda with channel conda-forge:
``` base
conda install -c conda-forge model_catalogs
```
### Install Optional Dependencies
Install additional dependencies for full functionality and running the demonstration notebooks. Activate your Python environment, then:
``` bash
$ mamba install -c conda-forge --file conda-requirements-opt.txt
```
or use `conda` in place of `mamba` if you don't have `mamba` installed.
## Develop Package
### Choose environment approach
#### Use provided environment
Clone the repo:
``` bash
$ git clone http://github.com/NOAA-ORR-ERD/model_catalogs.git
```
In the `model_catalogs` directory, install conda environment:
``` bash
$ conda env create -f environment.yml
```
Install `model_catalogs` into new environment (still in `model_catalogs` directory):
``` bash
$ conda activate model_catalogs
$ pip install -e .
```
#### Use other environment
Alternatively, if you have an existing environment you want to add to, clone the repo:
``` bash
$ git clone http://github.com/NOAA-ORR-ERD/model_catalogs.git
$ cd model_catalogs
```
Make sure the desired environment is activated and then:
``` bash
$ conda install -c conda-forge --file conda-requirements.txt
$ pip install -r pip-requirements.txt
```
Install `model_catalogs` into the environment (still in `model_catalogs` directory):
``` bash
$ pip install -e .
```
### Install development packages
To develop the code, follow instructions above for "Use provided environment" or "Use other environment" as appropriate. Then you can install additional dependencies for development and testing with
``` bash
$ conda install -c conda-forge --file conda-requirements-dev.txt
```
#### Run tests
Run tests that haven't been marked as "slow" with
``` bash
$ pytest
```
Run all tests, including slow tests, with:
``` bash
$ pytest --runslow
```
#### Check precommits locally before pushing
To then check code before committing and pushing it to github, locally run
``` bash
$ pre-commit run --all-files
```
These checks can change your files so it is best to check the changes before pushing to github.
#### Compile docs
Compile the docs locally after having installed the developer packages (see "Install development packages") or after making the docs environment with
``` bash
$ conda env create -f docs/environment.yml
```
and activating that environment.
Navigate to the docs folder and build the html documentation with
``` bash
$ make html
```
Finally you can make sure the documentation looks right by opening "_build/html/index.html".
Raw data
{
"_id": null,
"home_page": "https://github.com/NOAA-ORR-ERD/model_catalogs",
"name": "model-catalogs",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": "",
"keywords": "",
"author": "Kristen Thyng",
"author_email": "kristen@axds.co",
"download_url": "https://files.pythonhosted.org/packages/0e/8e/7e02ff06884a020e3a0ed079d91129679cb7f61830577f6cb8f15ad0f2b0/model_catalogs-0.7.0.tar.gz",
"platform": null,
"description": "model_catalogs\n==============================\n[![Build Status](https://img.shields.io/github/actions/workflow/status/NOAA-ORR-ERD/model_catalogs/test.yaml?branch=main&logo=github&style=for-the-badge)](https://github.com/axiom-data-science/model_catalogs/actions/workflows/test.yaml)\n[![Code Coverage](https://img.shields.io/codecov/c/github/NOAA-ORR-ERD/model_catalogs.svg?style=for-the-badge)](https://codecov.io/gh/NOAA-ORR-ERD/model_catalogs)\n[![License:MIT](https://img.shields.io/badge/License-MIT-green.svg?style=for-the-badge)](https://opensource.org/licenses/MIT)\n[![Documentation Status](https://img.shields.io/readthedocs/model_catalogs/latest.svg?style=for-the-badge)](https://model_catalogs.readthedocs.io/en/latest/?badge=latest)\n[![Code Style Status](https://img.shields.io/github/actions/workflow/status/NOAA-ORR-ERD/model_catalogs/linting.yaml?branch=main&label=Code%20Style&style=for-the-badge)](https://github.com/NOAA-ORR-ERD/model_catalogs/actions/workflows/linting.yaml)\n[![Conda Version](https://img.shields.io/conda/vn/conda-forge/model_catalogs.svg?style=for-the-badge)](https://anaconda.org/conda-forge/model_catalogs)\n[![Python Package Index](https://img.shields.io/pypi/v/model_catalogs.svg?style=for-the-badge)](https://pypi.org/project/model_catalogs)\n\n\nProvides access through Intake catalogs to a set of ocean models, especially the NOAA OFS models. In particular, this package is good for working with unaggregated NOAA OFS models.\n\nSpecific functionality includes:\n* Sets up an `Intake` catalog for known models to provide direct access to model output.\n* Provides access to model output as an `xarray` Dataset.\n* Models are known by their catalog files; see set [here](https://github.com/NOAA-ORR-ERD/model_catalogs/tree/main/model_catalogs/catalogs/orig). They include\n * NOAA OFS Models:\n * CBOFS\n * CIOFS\n * CREOFS\n * DBOFS\n * GOMOFS\n * LEOFS\n * LMHOFS\n * LOOFS\n * NGOFS2\n * NYOFS\n * SFBOFS\n * TBOFS\n * WCOFS\n * Full 3D fields, or regularly gridded or 2D versions when available\n * GFS models\n * Global GOFS HYCOM\n * RTOFS models\n* Multiple time ranges and sources of model output are provided when known. For example for the NOAA OFS models there are both forecast and historical sources for all models, and some have others as well.\n* `model_catalogs` knows how to aggregate NOAA OFS model output between nowcast and forecast files.\n* Known models have cleaned up and filled-in metadata so they are easy to work with in `xarray` and with `cf-xarray`.\n * `cf-xarray` will understand dimension and coordinate names, as well as a set of standard_names mapped to the variables.\n* Metadata about models is included in the `Intake` catalogs, such as:\n * polygon boundary of numerical domain\n * grid parameters\n * arguments for optimal read-in with `xarray`\n* Can request the availability of each model source.\n\n\n## Installation\n\n### PyPI\n\nTo install from PyPI:\n``` base\npip install model_catalogs\n```\n\n### conda-forge\n\nTo install from conda with channel conda-forge:\n``` base\nconda install -c conda-forge model_catalogs\n```\n\n\n### Install Optional Dependencies\n\nInstall additional dependencies for full functionality and running the demonstration notebooks. Activate your Python environment, then:\n\n``` bash\n$ mamba install -c conda-forge --file conda-requirements-opt.txt\n```\nor use `conda` in place of `mamba` if you don't have `mamba` installed.\n\n\n## Develop Package\n\n### Choose environment approach\n\n#### Use provided environment\n\nClone the repo:\n``` bash\n$ git clone http://github.com/NOAA-ORR-ERD/model_catalogs.git\n```\n\nIn the `model_catalogs` directory, install conda environment:\n``` bash\n$ conda env create -f environment.yml\n```\n\nInstall `model_catalogs` into new environment (still in `model_catalogs` directory):\n``` bash\n$ conda activate model_catalogs\n$ pip install -e .\n```\n\n#### Use other environment\n\nAlternatively, if you have an existing environment you want to add to, clone the repo:\n``` bash\n$ git clone http://github.com/NOAA-ORR-ERD/model_catalogs.git\n$ cd model_catalogs\n```\n\nMake sure the desired environment is activated and then:\n``` bash\n$ conda install -c conda-forge --file conda-requirements.txt\n$ pip install -r pip-requirements.txt\n```\n\nInstall `model_catalogs` into the environment (still in `model_catalogs` directory):\n``` bash\n$ pip install -e .\n```\n\n### Install development packages\n\nTo develop the code, follow instructions above for \"Use provided environment\" or \"Use other environment\" as appropriate. Then you can install additional dependencies for development and testing with\n``` bash\n$ conda install -c conda-forge --file conda-requirements-dev.txt\n```\n\n\n#### Run tests\n\nRun tests that haven't been marked as \"slow\" with\n``` bash\n$ pytest\n```\n\nRun all tests, including slow tests, with:\n``` bash\n$ pytest --runslow\n```\n\n\n#### Check precommits locally before pushing\n\nTo then check code before committing and pushing it to github, locally run\n``` bash\n$ pre-commit run --all-files\n```\nThese checks can change your files so it is best to check the changes before pushing to github.\n\n\n#### Compile docs\n\nCompile the docs locally after having installed the developer packages (see \"Install development packages\") or after making the docs environment with\n``` bash\n$ conda env create -f docs/environment.yml\n```\nand activating that environment.\n\nNavigate to the docs folder and build the html documentation with\n``` bash\n$ make html\n```\n\nFinally you can make sure the documentation looks right by opening \"_build/html/index.html\".\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Catalogs for known models",
"version": "0.7.0",
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "f2c100e98a05b40838805d942649f600a81a0997f56ef74f1537f231542fd643",
"md5": "65b444f12196ec8fccf7fe5e73f142ce",
"sha256": "96015e04f6ca2961ff307a9b38f70d20d3a31bb96b77e6e87137ad425a33eb44"
},
"downloads": -1,
"filename": "model_catalogs-0.7.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "65b444f12196ec8fccf7fe5e73f142ce",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 35286,
"upload_time": "2023-03-17T17:00:08",
"upload_time_iso_8601": "2023-03-17T17:00:08.289565Z",
"url": "https://files.pythonhosted.org/packages/f2/c1/00e98a05b40838805d942649f600a81a0997f56ef74f1537f231542fd643/model_catalogs-0.7.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "0e8e7e02ff06884a020e3a0ed079d91129679cb7f61830577f6cb8f15ad0f2b0",
"md5": "76dbc5385bd54f63840694148cff750e",
"sha256": "ef84364e11967ed81773f8b6dd6b66f0f579310db8d2373682a15665c11839a8"
},
"downloads": -1,
"filename": "model_catalogs-0.7.0.tar.gz",
"has_sig": false,
"md5_digest": "76dbc5385bd54f63840694148cff750e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 121380,
"upload_time": "2023-03-17T17:00:10",
"upload_time_iso_8601": "2023-03-17T17:00:10.775861Z",
"url": "https://files.pythonhosted.org/packages/0e/8e/7e02ff06884a020e3a0ed079d91129679cb7f61830577f6cb8f15ad0f2b0/model_catalogs-0.7.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-03-17 17:00:10",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "NOAA-ORR-ERD",
"github_project": "model_catalogs",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "model-catalogs"
}