{"id":29216980,"url":"https://github.com/mixstam1821/aether","last_synced_at":"2026-04-27T17:33:00.664Z","repository":{"id":301464457,"uuid":"1009347208","full_name":"mixstam1821/Aether","owner":"mixstam1821","description":"Aether: A fast netCDF Explorer","archived":false,"fork":false,"pushed_at":"2025-06-27T02:16:17.000Z","size":0,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-27T02:36:00.608Z","etag":null,"topics":["bokeh","climate","dashboard","netcdf","scipy","xarray"],"latest_commit_sha":null,"homepage":"","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/mixstam1821.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}},"created_at":"2025-06-27T01:39:31.000Z","updated_at":"2025-06-27T02:16:20.000Z","dependencies_parsed_at":"2025-06-27T02:47:09.414Z","dependency_job_id":null,"html_url":"https://github.com/mixstam1821/Aether","commit_stats":null,"previous_names":["mixstam1821/aether"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mixstam1821/Aether","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mixstam1821%2FAether","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mixstam1821%2FAether/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mixstam1821%2FAether/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mixstam1821%2FAether/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mixstam1821","download_url":"https://codeload.github.com/mixstam1821/Aether/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mixstam1821%2FAether/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263245241,"owners_count":23436510,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["bokeh","climate","dashboard","netcdf","scipy","xarray"],"created_at":"2025-07-03T02:00:42.234Z","updated_at":"2026-04-27T17:33:00.623Z","avatar_url":"https://github.com/mixstam1821.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Aether: Fast NetCDF Explorer\n\n_Aether_ is a modern, high-performance interactive explorer for **NetCDF datasets**, built with **Bokeh**, **Xarray**, and **SciPy**.  \n\nThis application is highly inspired by NASA’s Panoply!\n\nNetCDF files are a common file type in climate science, and Aether is an excellent app for students and researchers for quick exploration of the .nc files.\n\nMore specifically, Aether lets you:\n\nInstantly visualize huge NetCDF datasets—no lag\nPick variables \u0026 dimensions with a click (supports 4D/5D)\nExplore maps, timeseries, anomalies, and trends right in your browser\nClick anywhere for instant timeseries \u0026 anomaly analysis (with built-in trend lines)\nDrag, box-select, zoom, animate, and analyze—real time!\nFull info panels, custom colormaps, and robust color scaling\n\n## What new Aether brings to the table?\n\n- Interactive map (zoom, pan, selection).\n- Time series and their core statistics by clicking or selecting a region.\n- Animations.\n- Custom trend detection.\n\n---\n\n## Update 03.07.2025\n- Analysis for the trends of the 12 months of the year has been added as a bar plot.\n![Aether UI](assets/Screenshot_20250703_042747.png)\n\n## 🚀 Features\n\n- **Fast NetCDF File Loading** (local path)\n- **Interactive Variable \u0026 Dimension Selection**\n  - Supports auto-detection of time, 4th, and 5th dims\n  - Spatial and non-spatial dimension control\n- **Instant Heatmap Viewer**\n  - Choose colormaps (Viridis, Plasma, RdBu, more)\n  - Robust color scaling (1st–99th percentile by default)\n  - Live min/max spinners and palette switching\n- **Click-to-Explore Timeseries**\n  - Click any point on the map for full temporal analysis\n  - Dual timeseries tabs: _raw values_ \u0026 _anomalies_\n  - Savitzky-Golay filtering, OLS/Theil-Sen trend lines, p-values\n- **Interactive Area Averaging**\n  - Drag/box-select region to view mean timeseries/trends\n- **Annual Cycle Analysis**\n- **Latitudinal Mean Profile** (area-weighted)\n- **Full dataset info panel**\n- **Notes area for in-app documentation**\n\n---\n\n## 🎥 Screenshots and Instructions\n\u003c!-- Insert images or GIFs of the UI here if possible --\u003e\n![Aether UI](assets/ae1.png)\n![Aether UI](assets/ae2.png)\n![Aether UI](assets/ae3.png)\n\n- Copy the full filepath (/home/michael/myfile.nc) or right click on .nc file select copy and then just paste in the input field (e.g. file:///home/michael/myfile.nc).\n- Press the button Load File and the file will load.\n- By default Ather understand the common lat lon time dimensions, but please ensure that all the dimensions and the variable are that you want to investigate.\n![Aether UI](assets/ae1.gif)\n\n- After the file loading, you can interact with the map and explore the distribution of the variable.\n- By clicking on a specific point or selecting a box area you can get the corresponding spatial-averaged timeseries. Anomalies of these timeseries are also computed.\n- Linear trend line and low pass filtered data (Savitzky-Golay filter) are applied to the timeseries.\n![Aether UI](assets/ae2.gif)\n\n- The user can select a specific range of the timeseries' date range and get the corresponding trend.\n- Animation of the map, select a specific data or a time slider are also supported.\n- The user can change the colormap and its min max values.\n![Aether UI](assets/ae3.gif)\n![Aether UI](assets/ae4.gif)\n![Aether UI](assets/ae5.gif)\n![Aether UI](assets/ae6.gif)\n-- The annual cycle will appear only with monthly data.\n\n---\n\n## ⚡ Quickstart\n\n1. **Clone \u0026 create environment**\n    ```bash\n    git clone https://github.com/mixstam1821/Aether.git\n    cd Aether\n    python3 -m venv aetherenv\n    source aetherenv/bin/activate\n    pip install --upgrade pip\n    pip install -r requirements.txt\n    ```\n\n2. **Run the app**\n    ```bash\n    bokeh serve --show aether.py\n    ```\n\n3. **Open in browser**\n    - Enter your local NetCDF file path (e.g. `/Users/you/data/myfile.nc`)\n    - Explore: Select variables, dimensions, slice by time, click any pixel for full timeseries!\n\n---\n\n## Using Docker\n\n```bash\ngit clone https://github.com/mixstam1821/Aether.git\ncd Aether\ndocker build -t aether-app .\ndocker run -p 9285:9285 -v /path/to/your/netcdf/data:/data aether-app\n```\n\nTo test some netCDFs, please download them via the links in assets/links.txt.\n\n## 📦 Requirements\n\n- Python 3.8+\n- Recommended install:\n    ```bash\n    pip install bokeh xarray numpy pandas scipy matplotlib cartopy shapely cftime\n    ```\n- For advanced usage:  \n  `jupyterlab`, `ipython` (optional, for interactive notebook usage)\n\n---\n\n## 🧭 Usage Tips\n\n- **File path:** Absolute local path required (use `/path/to/your/file.nc`)\n- **Variable \u0026 dimension selection:** Dropdowns auto-populate after loading\n- **Box selection:** Drag rectangle on heatmap to see area-averaged timeseries\n- **Colormap \u0026 scaling:** Use palette and min/max for best visual contrast\n- **Trend analysis:** Drag endpoints on timeseries to fit OLS or Theil–Sen (toggle tool in plot toolbar)\n- **Notes:** Use the notes widget for dataset annotations or workflow logs\n\n---\n\n## 👨‍💻 Credits\n\nCreated with ❤️ by [mixstam1821](https://github.com/mixstam1821)\n\n---\n\n## 🔗 License\n\nMIT License (see [LICENSE](./LICENSE))\n\n---\n\n## 🌊 Example Data\n\nTry with freely available climate/earth science datasets:\n\n- [NOAA NCEP Reanalysis](https://psl.noaa.gov/data/gridded/data.ncep.reanalysis.html)\n- [CMIP6 output](https://esgf-node.llnl.gov/projects/cmip6/)\n- [Copernicus ERA5](https://cds.climate.copernicus.eu/cdsapp#!/dataset/reanalysis-era5-single-levels-monthly-means)\n\n---\n\n## 🛠️ Development\n\n- PRs, issues, and forks welcome!\n- For custom UI/feature requests, open a GitHub issue\n\n---\n\n**Enjoy data exploration at the speed of thought—powered by Aether!**\n\n---\n```bash\nIn Greek mythology, Aether (/ˈiːθər/; Ancient Greek: Αἰθήρ (Brightness) pronounced [ai̯tʰɛ̌ːr]) is the personification of the bright upper sky. According to Hesiod, he was the son of Erebus (Darkness) and Nyx (Night), and the brother of Hemera (Day).\n\nHymn to Aether\nThe Orphic Hymns (2nd or 3rd centuries AD?) are a collection of eighty-seven poems addressed to various deities or abstractions. The fifth Orphic Hymn, which prescribes an offering of saffron, addresses Aether as follows:\n\nYours are Zeus' lofty dwelling, endless power too;\nof the stars, of the sun, and of the moon you claim a share.\nO tamer of all, O fire-breather, O life's spark for every creature,\nsublime Ether, best cosmic element,\nradiant, luminous, starlit offspring,\nI call upon you and I beseech you to be temperate and clear.\n\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmixstam1821%2Faether","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmixstam1821%2Faether","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmixstam1821%2Faether/lists"}