safe-earth


Namesafe-earth JSON
Version 0.0.17 PyPI version JSON
download
home_pageNone
SummaryStratified Assessments of Forecasts over Earth
upload_time2025-09-03 05:19:14
maintainerNone
docs_urlNone
authorNone
requires_pythonNone
licenseNone
keywords climate earth fairness machine learning stratification weather
VCS
bugtrack_url
requirements numpy matplotlib pandas shapely tqdm lightning scikit-learn pyyaml torchvision torchaudio basemap xarray zarr kagglehub huggingface_hub geotiff cartopy geopy neuraloperator einops wandb kaggle gcsfs fsspec cfgrib cdsapi xesmf torch optuna dotenv rasterio geopandas pytest pytest-cov geojson requests_cache earthengine-api pygeoboundaries-geolab maskedtensor-nightly pytorch_lightning rich hydra-core wandb
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # SAFE
Stratified Assessment of Forecasts over Earth

[Preprint](https://n-masi.github.io/papers/safe_masi.pdf) and [Website](https://n-masi.github.io/safe)

### Installation

`pip install safe-earth`

To build from source instead:

```
# get repo
git clone git@github.com:N-Masi/safe.git

# create dev environment
conda create -n safe.env
conda activate safe.env
pip install --file requirements.txt
conda install --channel conda-forge pygmt plotly typing_extensions
```
<!-- 
If you are an authorized contributor and want to upload a new version to pypi: 

```
python3 -m build
python3 -m twine upload dist/*
```
-->

<!-- When running directly from the source repository, run files with `python -m safe_earth.<directory>.<file_without_extension>` while in the `src/` subdirectory. -->

### Example

An example of using the package to collect metrics on 6 AIWP models across the territory, subregion, and income 
attributes is availabe in `demos/wb2_240x121.py`. It assesses the models using 2020 ERA5 data.

### Data Notes

To unify the coordinate system across all integrated data sources, latitude ranges [-90, 90] with index 0 at -90, and longitude [-180, 180) but with index 0 at 0 and a wraparound from 180 to -180 in the middle. This is because metadata sourced from pygeoboundaries_geolab follows this coordinate system, and it is easiest to bring tabular data into conformance.

### Testing

Run `pytest` in the of the source repository directory.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "safe-earth",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "climate, earth, fairness, machine learning, stratification, weather",
    "author": null,
    "author_email": "Nick Masi <nicholas_masi@alumni.brown.edu>, Daniel Cai <daniel_cai@brown.edu>, Randall Balestriero <randall_balestriero@brown.edu>",
    "download_url": "https://files.pythonhosted.org/packages/7c/5b/6c9662687013c2ecc8d2905b3402b1b2ea4aa2410693078d0b60ec05ae4f/safe_earth-0.0.17.tar.gz",
    "platform": null,
    "description": "# SAFE\nStratified Assessment of Forecasts over Earth\n\n[Preprint](https://n-masi.github.io/papers/safe_masi.pdf) and [Website](https://n-masi.github.io/safe)\n\n### Installation\n\n`pip install safe-earth`\n\nTo build from source instead:\n\n```\n# get repo\ngit clone git@github.com:N-Masi/safe.git\n\n# create dev environment\nconda create -n safe.env\nconda activate safe.env\npip install --file requirements.txt\nconda install --channel conda-forge pygmt plotly typing_extensions\n```\n<!-- \nIf you are an authorized contributor and want to upload a new version to pypi: \n\n```\npython3 -m build\npython3 -m twine upload dist/*\n```\n-->\n\n<!-- When running directly from the source repository, run files with `python -m safe_earth.<directory>.<file_without_extension>` while in the `src/` subdirectory. -->\n\n### Example\n\nAn example of using the package to collect metrics on 6 AIWP models across the territory, subregion, and income \nattributes is availabe in `demos/wb2_240x121.py`. It assesses the models using 2020 ERA5 data.\n\n### Data Notes\n\nTo unify the coordinate system across all integrated data sources, latitude ranges [-90, 90] with index 0 at -90, and longitude [-180, 180) but with index 0 at 0 and a wraparound from 180 to -180 in the middle. This is because metadata sourced from pygeoboundaries_geolab follows this coordinate system, and it is easiest to bring tabular data into conformance.\n\n### Testing\n\nRun `pytest` in the of the source repository directory.\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Stratified Assessments of Forecasts over Earth",
    "version": "0.0.17",
    "project_urls": {
        "Homepage": "https://n-masi.github.io/safe/",
        "Repository": "https://github.com/n-masi/safe"
    },
    "split_keywords": [
        "climate",
        " earth",
        " fairness",
        " machine learning",
        " stratification",
        " weather"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4e8a72a54ccc314c0bbb42dfe2140d9d6e8ee8a9390978d59a2a97ebf3b08a33",
                "md5": "eb12f05f41f639cc285dd430af46c844",
                "sha256": "5676fb37aba31767608fdf5e75aa00c1f817c440192fe0609e18a8d0a7edd468"
            },
            "downloads": -1,
            "filename": "safe_earth-0.0.17-py2.py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "eb12f05f41f639cc285dd430af46c844",
            "packagetype": "bdist_wheel",
            "python_version": "py2.py3",
            "requires_python": null,
            "size": 26666891,
            "upload_time": "2025-09-03T05:19:11",
            "upload_time_iso_8601": "2025-09-03T05:19:11.378973Z",
            "url": "https://files.pythonhosted.org/packages/4e/8a/72a54ccc314c0bbb42dfe2140d9d6e8ee8a9390978d59a2a97ebf3b08a33/safe_earth-0.0.17-py2.py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "7c5b6c9662687013c2ecc8d2905b3402b1b2ea4aa2410693078d0b60ec05ae4f",
                "md5": "fc220cb841fe71f876a68a5095080488",
                "sha256": "e1181724cc5fed1d5a61d17f210b13e1d56fea3310ddf3e2fbe22ad84870a88f"
            },
            "downloads": -1,
            "filename": "safe_earth-0.0.17.tar.gz",
            "has_sig": false,
            "md5_digest": "fc220cb841fe71f876a68a5095080488",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 26620253,
            "upload_time": "2025-09-03T05:19:14",
            "upload_time_iso_8601": "2025-09-03T05:19:14.095693Z",
            "url": "https://files.pythonhosted.org/packages/7c/5b/6c9662687013c2ecc8d2905b3402b1b2ea4aa2410693078d0b60ec05ae4f/safe_earth-0.0.17.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-09-03 05:19:14",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "n-masi",
    "github_project": "safe",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [
        {
            "name": "numpy",
            "specs": []
        },
        {
            "name": "matplotlib",
            "specs": []
        },
        {
            "name": "pandas",
            "specs": []
        },
        {
            "name": "shapely",
            "specs": []
        },
        {
            "name": "tqdm",
            "specs": []
        },
        {
            "name": "lightning",
            "specs": []
        },
        {
            "name": "scikit-learn",
            "specs": []
        },
        {
            "name": "pyyaml",
            "specs": []
        },
        {
            "name": "torchvision",
            "specs": []
        },
        {
            "name": "torchaudio",
            "specs": []
        },
        {
            "name": "basemap",
            "specs": []
        },
        {
            "name": "xarray",
            "specs": []
        },
        {
            "name": "zarr",
            "specs": []
        },
        {
            "name": "kagglehub",
            "specs": []
        },
        {
            "name": "huggingface_hub",
            "specs": []
        },
        {
            "name": "geotiff",
            "specs": []
        },
        {
            "name": "cartopy",
            "specs": []
        },
        {
            "name": "geopy",
            "specs": []
        },
        {
            "name": "neuraloperator",
            "specs": []
        },
        {
            "name": "einops",
            "specs": []
        },
        {
            "name": "wandb",
            "specs": []
        },
        {
            "name": "kaggle",
            "specs": []
        },
        {
            "name": "gcsfs",
            "specs": []
        },
        {
            "name": "fsspec",
            "specs": []
        },
        {
            "name": "cfgrib",
            "specs": []
        },
        {
            "name": "cdsapi",
            "specs": []
        },
        {
            "name": "xesmf",
            "specs": []
        },
        {
            "name": "torch",
            "specs": []
        },
        {
            "name": "optuna",
            "specs": []
        },
        {
            "name": "dotenv",
            "specs": []
        },
        {
            "name": "rasterio",
            "specs": []
        },
        {
            "name": "geopandas",
            "specs": []
        },
        {
            "name": "pytest",
            "specs": []
        },
        {
            "name": "pytest-cov",
            "specs": []
        },
        {
            "name": "geojson",
            "specs": []
        },
        {
            "name": "requests_cache",
            "specs": []
        },
        {
            "name": "earthengine-api",
            "specs": []
        },
        {
            "name": "pygeoboundaries-geolab",
            "specs": []
        },
        {
            "name": "maskedtensor-nightly",
            "specs": []
        },
        {
            "name": "pytorch_lightning",
            "specs": []
        },
        {
            "name": "rich",
            "specs": []
        },
        {
            "name": "hydra-core",
            "specs": []
        },
        {
            "name": "wandb",
            "specs": []
        }
    ],
    "lcname": "safe-earth"
}
        
Elapsed time: 0.94619s