From 020f7421370cfd702f8c7a0aa0609a5c4e463543 Mon Sep 17 00:00:00 2001 From: rbeucher Date: Tue, 22 Oct 2024 13:48:36 +1000 Subject: [PATCH 1/4] Remove reference to nf33 --- README.md | 4 ++++ src/accessvis/earth.py | 23 ++++++++++++++++------- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 4e8787a..0b3263a 100644 --- a/README.md +++ b/README.md @@ -33,4 +33,8 @@ git tag v1.2.0 git push origin v1.2.0 ``` +### Config and DATA caching + +By default, `ACCESS-Vis` caches its data in different locations depending on the platform. On NCI Gadi, data are stored in `/scratch/$PROJECT/$USER/.accessvis`, while on other platforms, the data are cached in `$HOME/.accessvis`. However, users can customize this path by setting the `ACCESSVIS_DATA_DIR` environment variable to a directory of their choice. + diff --git a/src/accessvis/earth.py b/src/accessvis/earth.py index 0718de6..422889d 100644 --- a/src/accessvis/earth.py +++ b/src/accessvis/earth.py @@ -4,10 +4,8 @@ import py360convert from PIL import Image import os -import sys Image.MAX_IMAGE_PIXELS = None from pathlib import Path -import math import datetime import lavavu import gzip @@ -18,7 +16,7 @@ import matplotlib import quaternion as quat -from utils import is_ipython, is_notebook, download, pushd +from utils import is_notebook, download, pushd MtoLL = 1.0/111133 #Rough conversion from metres to lat/lon units @@ -34,13 +32,24 @@ class Settings(): #Where data is stored, defaults to module dir unless on gadi INSTALL_PATH = Path(__file__).parents[0] - if 'gadi.nci.org.au' in os.getenv('HOSTNAME', ''): - DATA_PATH = Path('/g/data/nf33/public/data/accessvis') + + # Default to non-headless mode + HEADLESS = False + # Check if the data directory is specified in environment variables + DATA_PATH = os.getenv("ACCESSVIS_DATA_DIR") + + # Check if running on 'gadi.nci.org.au' + hostname = os.getenv('HOSTNAME', '') + if 'gadi.nci.org.au' in hostname: + project = os.getenv("PROJECT") + user = os.getenv("USER") + DATA_PATH = Path(f'/scratch/{project}/{user}/.accessvis') HEADLESS = True else: - DATA_PATH = INSTALL_PATH / 'data' - HEADLESS = False + DATA_PATH = Path.home() / ".accessvis" + os.makedirs(DATA_PATH, exist_ok=True) + GEBCO_PATH = DATA_PATH / 'gebco' / 'GEBCO_2020.nc' def __repr__(self): From 5f3840f78da2e0e2bbd6c16288ef827472f97abd Mon Sep 17 00:00:00 2001 From: rbeucher Date: Tue, 22 Oct 2024 14:43:36 +1000 Subject: [PATCH 2/4] Restructure a bit --- .gitignore | 2 -- pyproject.toml | 2 +- src/accessvis/{ => data}/blank.png | Bin src/accessvis/{ => data}/earth_shader.frag | 0 src/accessvis/{ => data}/earth_shader.vert | 0 .../{ => data}/sea-water-1024x1024_gs.png | Bin src/accessvis/{ => data}/sea-water_normals.png | Bin src/accessvis/earth.py | 14 +++++++------- 8 files changed, 8 insertions(+), 10 deletions(-) rename src/accessvis/{ => data}/blank.png (100%) rename src/accessvis/{ => data}/earth_shader.frag (100%) rename src/accessvis/{ => data}/earth_shader.vert (100%) rename src/accessvis/{ => data}/sea-water-1024x1024_gs.png (100%) rename src/accessvis/{ => data}/sea-water_normals.png (100%) diff --git a/.gitignore b/.gitignore index d45e919..2419910 100644 --- a/.gitignore +++ b/.gitignore @@ -5,7 +5,6 @@ notes build __pycache__ vid_old -src/accessvis/data src/accessvis.egg-info venv/ @@ -14,7 +13,6 @@ ENV/ .env .idea -*.png *.jpg *.jpeg *.mp4 \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index 335c120..3b15fe2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -101,7 +101,7 @@ dependencies = [ [tool.setuptools] # If there are data files included in your packages that need to be # installed, specify them here. -package-data = {"textures" = ["*.png"], "shaders" = ["*.frag", "*.vert"]} +package-data = {"textures" = ["data/*.png"], "shaders" = ["data/*.frag", "data/*.vert"]} [build-system] build-backend = "setuptools.build_meta" diff --git a/src/accessvis/blank.png b/src/accessvis/data/blank.png similarity index 100% rename from src/accessvis/blank.png rename to src/accessvis/data/blank.png diff --git a/src/accessvis/earth_shader.frag b/src/accessvis/data/earth_shader.frag similarity index 100% rename from src/accessvis/earth_shader.frag rename to src/accessvis/data/earth_shader.frag diff --git a/src/accessvis/earth_shader.vert b/src/accessvis/data/earth_shader.vert similarity index 100% rename from src/accessvis/earth_shader.vert rename to src/accessvis/data/earth_shader.vert diff --git a/src/accessvis/sea-water-1024x1024_gs.png b/src/accessvis/data/sea-water-1024x1024_gs.png similarity index 100% rename from src/accessvis/sea-water-1024x1024_gs.png rename to src/accessvis/data/sea-water-1024x1024_gs.png diff --git a/src/accessvis/sea-water_normals.png b/src/accessvis/data/sea-water_normals.png similarity index 100% rename from src/accessvis/sea-water_normals.png rename to src/accessvis/data/sea-water_normals.png diff --git a/src/accessvis/earth.py b/src/accessvis/earth.py index 422889d..68bc431 100644 --- a/src/accessvis/earth.py +++ b/src/accessvis/earth.py @@ -319,7 +319,7 @@ def sphere_mesh(radius=1.0, quality=256, cache=True): lv = get_viewer() tris0 = lv.spheres("sphere", scaling=radius, segments=quality, colour="grey", vertices=[0,0,0], fliptexture=False) tris0['rotate'] = [0,-90,0] #This rotates the sphere coords to align with [0,360] longitude texture - tris0['texture'] = 'blank.png' #Need an initial texture or texcoords will not be generated + tris0['texture'] = 'data/blank.png' #Need an initial texture or texcoords will not be generated tris0['renderer'] = 'sortedtriangles' lv.render() @@ -567,12 +567,12 @@ def plot_region(lv=None, cropbox=None, vertical_exaggeration=10, texture='bluema ''' #TODO: wave shader etc for regional sections if waves: - uniforms["wavetex"] = f"{settings.INSTALL_PATH}/sea-water-1024x1024_gs.png" - uniforms["wavenormal"] = f"{settings.INSTALL_PATH}/sea-water_normals.png" + uniforms["wavetex"] = f"{settings.INSTALL_PATH}/data/sea-water-1024x1024_gs.png" + uniforms["wavenormal"] = f"{settings.INSTALL_PATH}/data/sea-water_normals.png" uniforms["waves"] = True; if shaders is None: - shaders = [f'{settings.INSTALL_PATH}/earth_shader.vert', f'{settings.INSTALL_PATH}/earth_shader.frag'] + shaders = [f'{settings.INSTALL_PATH}/data/earth_shader.vert', f'{settings.INSTALL_PATH}/data/earth_shader.frag'] ''' #Split kwargs into global props, object props and uniform values @@ -700,8 +700,8 @@ def plot_earth(lv=None, radius=6.371, vertical_exaggeration=10, texture='bluemar texture = '{basedir}/relief/cubemap_{texres}/{face}_relief_{texres}.png' #Waves - load textures as shared - lv.texture("wavetex", f"{settings.INSTALL_PATH}/sea-water-1024x1024_gs.png") - lv.texture("wavenormal", f"{settings.INSTALL_PATH}/sea-water_normals.png") + lv.texture("wavetex", f"{settings.INSTALL_PATH}/data/sea-water-1024x1024_gs.png") + lv.texture("wavenormal", f"{settings.INSTALL_PATH}/data/sea-water_normals.png") #Need to set the property too or will not know to load the texture if waves is None: waves = False uniforms["wavetex"] = "" @@ -716,7 +716,7 @@ def plot_earth(lv=None, radius=6.371, vertical_exaggeration=10, texture='bluemar uniforms["heightmax"] = hrange[1]; if shaders is None: - shaders = [f'{settings.INSTALL_PATH}/earth_shader.vert', f'{settings.INSTALL_PATH}/earth_shader.frag'] + shaders = [f'{settings.INSTALL_PATH}/data/earth_shader.vert', f'{settings.INSTALL_PATH}/data/earth_shader.frag'] #Split kwargs into global props, object props and uniform values objargs = {} From f721b8c983a5acb1e785d1bb3125963338f68df7 Mon Sep 17 00:00:00 2001 From: rbeucher Date: Wed, 23 Oct 2024 09:31:44 +1000 Subject: [PATCH 3/4] FIx logic --- src/accessvis/earth.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/accessvis/earth.py b/src/accessvis/earth.py index 68bc431..b567d62 100644 --- a/src/accessvis/earth.py +++ b/src/accessvis/earth.py @@ -40,7 +40,7 @@ class Settings(): # Check if running on 'gadi.nci.org.au' hostname = os.getenv('HOSTNAME', '') - if 'gadi.nci.org.au' in hostname: + if not DATA_PATH and 'gadi.nci.org.au' in hostname: project = os.getenv("PROJECT") user = os.getenv("USER") DATA_PATH = Path(f'/scratch/{project}/{user}/.accessvis') From 7e9a7f95654694421159528270c1f0180c7bd473 Mon Sep 17 00:00:00 2001 From: Romain Beucher Date: Wed, 23 Oct 2024 11:27:48 +1000 Subject: [PATCH 4/4] Update meta.yaml --- .conda/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.conda/meta.yaml b/.conda/meta.yaml index cba1a9f..f997f87 100644 --- a/.conda/meta.yaml +++ b/.conda/meta.yaml @@ -6,7 +6,7 @@ package: version: "{{ version }}" source: - #url: "https://pypi.io/packages/source/a/access-nri-intake/accessvis-{{ version }}.tar.gz" + url: "https://pypi.io/packages/source/a/accessvis/accessvis-{{ version }}.tar.gz" build: noarch: python @@ -39,4 +39,4 @@ about: extra: recipe-maintainers: - - rbeucher \ No newline at end of file + - rbeucher