{"id":42570459,"url":"https://github.com/koldunovn/nereus","last_synced_at":"2026-02-04T12:07:15.726Z","repository":{"id":333743368,"uuid":"1138529609","full_name":"koldunovn/nereus","owner":"koldunovn","description":null,"archived":false,"fork":false,"pushed_at":"2026-01-27T09:45:10.000Z","size":9025,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-29T09:41:49.603Z","etag":null,"topics":["ocean","ocean-modelling","ocean-sciences","oceanography"],"latest_commit_sha":null,"homepage":"https://nereus.readthedocs.io/en/latest/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/koldunovn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-20T19:43:14.000Z","updated_at":"2026-01-27T15:05:18.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/koldunovn/nereus","commit_stats":null,"previous_names":["koldunovn/nereus"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/koldunovn/nereus","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koldunovn%2Fnereus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koldunovn%2Fnereus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koldunovn%2Fnereus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koldunovn%2Fnereus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/koldunovn","download_url":"https://codeload.github.com/koldunovn/nereus/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koldunovn%2Fnereus/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29084088,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-04T03:31:03.593Z","status":"ssl_error","status_checked_at":"2026-02-04T03:29:50.742Z","response_time":62,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ocean","ocean-modelling","ocean-sciences","oceanography"],"created_at":"2026-01-28T21:07:03.886Z","updated_at":"2026-02-04T12:07:15.702Z","avatar_url":"https://github.com/koldunovn.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# \u003cimg width=\"200\" alt=\"nereus2\" src=\"https://github.com/user-attachments/assets/c31aefbd-43c0-4021-a73e-c1c3507091aa\" /\u003e\n\n\n**Nereus, fast visualization and diagnostics for unstructured climate model data**\n\n[![CI](https://github.com/koldunovn/nereus/actions/workflows/ci.yml/badge.svg)](https://github.com/koldunovn/nereus/actions/workflows/ci.yml)\n[![PyPI version](https://badge.fury.io/py/nereus.svg)](https://badge.fury.io/py/nereus)\n[![Documentation Status](https://readthedocs.org/projects/nereus/badge/?version=latest)](https://nereus.readthedocs.io/en/latest/?badge=latest)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n[![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)\n\nNereus is a Python library for quick data exploration of unstructured atmospheric and ocean model output in Jupyter notebooks. Plot global maps, compute diagnostics, and visualize transects from models like FESOM, ICON, and others — all with minimal code.\n\n## ✨ Features\n\n- **One-line plotting** — Visualize unstructured mesh data on publication-quality maps\n- **Fast regridding** — KD-tree based interpolation with automatic caching\n- **Multiple projections** — Robinson, Mollweide, stereographic, orthographic, and more\n- **Ocean \u0026 sea ice diagnostics** — Ice area/volume/extent, heat content, volume-weighted means\n- **Vertical transects** — Cross-section plots along great circle paths\n- **Hovmöller diagrams** — Time-depth and time-latitude visualizations\n- **Region masking** — Built-in support for ocean basins, NINO regions, MOC basins\n\n## Installation\n\n```bash\npip install nereus\n```\n\n## Quick Start\n\n```python\nimport nereus as nr\nimport xarray as xr\n\n# Load your unstructured model output\nds = xr.open_dataset(\"model_output.nc\")\nmesh = xr.open_dataset('model_grid.nc')\n\n# Plot sea surface temperature in one line\nfig, ax, interp = nr.plot(\n    ds.temp.isel(time=0, nz1=0),\n    mesh.lon, mesh.lat,\n    projection=\"rob\",\n    cmap=\"RdBu_r\",\n    vmin=-2, vmax=30\n)\n\n# Reuse interpolator for another variable\nfig, ax, _ = nr.plot(ds.salt.isel(time=0, nz1=0), ds.lon, ds.lat, interpolator=interp)\n```\n\n### Regridding\n\n```python\n# Regrid to a regular 0.5° grid\nregridded, interp = nr.regrid(data, lon, lat, resolution=0.5)\n\n# Reuse interpolator for efficiency\nregridded_salt, _ = nr.regrid(salinity, lon, lat, interpolator=interp)\n```\n\n### Working with FESOM\n\n```python\n# Load mesh once, reuse for multiple operations\nmesh = nr.fesom.load_mesh(\"/path/to/mesh/\")\n\n# Compute sea ice extent\nextent = nr.ice_extent(ds.a_ice, mesh.area, threshold=0.15)\n\n# Ocean heat content (total in Joules)\nohc = nr.heat_content(ds.temp, mesh.area, mesh.layer_thickness)\n\n# Ocean heat content map (J/m² at each point)\nohc_map = nr.heat_content(ds.temp, mesh.area, mesh.layer_thickness, output=\"map\")\n\n# Volume-weighted mean temperature\nmean_temp = nr.volume_mean(ds.temp, mesh.area, mesh.layer_thickness)\n```\n\n### Vertical Transects\n\n```python\n# Plot a transect from point A to point B\nnr.transect(\n    ds.temp,\n    mesh.lon, mesh.lat, mesh.depth,\n    start=(-30, -60),  # (lon, lat)\n    end=(30, 60),\n    cmap=\"thermal\"\n)\n```\n\n## Supported Models\n\n| Model/mesh | Status |\n|------------|--------|\n| FESOM2 | ✅ Full support |\n| IFS TCO | ✅ Full support |\n| HEALPix | 🔧 In development |\n| ICON-O | 📋 Planned |\n| ICON-A | 📋 Planned |\n| NEMO   | 📋 Planned |\n\n\n## Documentation\n\n📖 Full documentation: [nereus.readthedocs.io](https://nereus.readthedocs.io)\n\n- [Installation Guide](https://nereus.readthedocs.io/en/latest/getting_started/installation.html)\n- [Quick Start Tutorial](https://nereus.readthedocs.io/en/latest/getting_started/quickstart.html)\n- [API Reference](https://nereus.readthedocs.io/en/latest/api/index.html)\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n```bash\n# Clone and install in development mode\ngit clone https://github.com/koldunovn/nereus.git\ncd nereus\npip install -e \".[dev]\"\n\n# Run tests\npytest tests/\n```\n\n## License\n\nMIT License — see [LICENSE](LICENSE) for details.\n\n---\n\n*Named after the Greek god of the sea, the \"Old Man of the Sea.\"*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkoldunovn%2Fnereus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkoldunovn%2Fnereus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkoldunovn%2Fnereus/lists"}