4
4
import py360convert
5
5
from PIL import Image
6
6
import os
7
- import sys
8
7
Image .MAX_IMAGE_PIXELS = None
9
8
from pathlib import Path
10
- import math
11
9
import datetime
12
10
import lavavu
13
11
import gzip
18
16
import matplotlib
19
17
import quaternion as quat
20
18
21
- from utils import is_ipython , is_notebook , download , pushd
19
+ from utils import is_notebook , download , pushd
22
20
23
21
MtoLL = 1.0 / 111133 #Rough conversion from metres to lat/lon units
24
22
@@ -34,13 +32,24 @@ class Settings():
34
32
35
33
#Where data is stored, defaults to module dir unless on gadi
36
34
INSTALL_PATH = Path (__file__ ).parents [0 ]
37
- if 'gadi.nci.org.au' in os .getenv ('HOSTNAME' , '' ):
38
- DATA_PATH = Path ('/g/data/nf33/public/data/accessvis' )
35
+
36
+ # Default to non-headless mode
37
+ HEADLESS = False
38
+ # Check if the data directory is specified in environment variables
39
+ DATA_PATH = os .getenv ("ACCESSVIS_DATA_DIR" )
40
+
41
+ # Check if running on 'gadi.nci.org.au'
42
+ hostname = os .getenv ('HOSTNAME' , '' )
43
+ if not DATA_PATH and 'gadi.nci.org.au' in hostname :
44
+ project = os .getenv ("PROJECT" )
45
+ user = os .getenv ("USER" )
46
+ DATA_PATH = Path (f'/scratch/{ project } /{ user } /.accessvis' )
39
47
HEADLESS = True
40
48
else :
41
- DATA_PATH = INSTALL_PATH / 'data'
42
- HEADLESS = False
49
+ DATA_PATH = Path .home () / ".accessvis"
43
50
51
+ os .makedirs (DATA_PATH , exist_ok = True )
52
+
44
53
GEBCO_PATH = DATA_PATH / 'gebco' / 'GEBCO_2020.nc'
45
54
46
55
def __repr__ (self ):
@@ -310,7 +319,7 @@ def sphere_mesh(radius=1.0, quality=256, cache=True):
310
319
lv = get_viewer ()
311
320
tris0 = lv .spheres ("sphere" , scaling = radius , segments = quality , colour = "grey" , vertices = [0 ,0 ,0 ], fliptexture = False )
312
321
tris0 ['rotate' ] = [0 ,- 90 ,0 ] #This rotates the sphere coords to align with [0,360] longitude texture
313
- tris0 ['texture' ] = 'blank.png' #Need an initial texture or texcoords will not be generated
322
+ tris0 ['texture' ] = 'data/ blank.png' #Need an initial texture or texcoords will not be generated
314
323
tris0 ['renderer' ] = 'sortedtriangles'
315
324
lv .render ()
316
325
@@ -558,12 +567,12 @@ def plot_region(lv=None, cropbox=None, vertical_exaggeration=10, texture='bluema
558
567
'''
559
568
#TODO: wave shader etc for regional sections
560
569
if waves:
561
- uniforms["wavetex"] = f"{settings.INSTALL_PATH}/sea-water-1024x1024_gs.png"
562
- uniforms["wavenormal"] = f"{settings.INSTALL_PATH}/sea-water_normals.png"
570
+ uniforms["wavetex"] = f"{settings.INSTALL_PATH}/data/ sea-water-1024x1024_gs.png"
571
+ uniforms["wavenormal"] = f"{settings.INSTALL_PATH}/data/ sea-water_normals.png"
563
572
uniforms["waves"] = True;
564
573
565
574
if shaders is None:
566
- shaders = [f'{settings.INSTALL_PATH}/earth_shader.vert', f'{settings.INSTALL_PATH}/earth_shader.frag']
575
+ shaders = [f'{settings.INSTALL_PATH}/data/ earth_shader.vert', f'{settings.INSTALL_PATH}/data /earth_shader.frag']
567
576
'''
568
577
569
578
#Split kwargs into global props, object props and uniform values
@@ -691,8 +700,8 @@ def plot_earth(lv=None, radius=6.371, vertical_exaggeration=10, texture='bluemar
691
700
texture = '{basedir}/relief/cubemap_{texres}/{face}_relief_{texres}.png'
692
701
693
702
#Waves - load textures as shared
694
- lv .texture ("wavetex" , f"{ settings .INSTALL_PATH } /sea-water-1024x1024_gs.png" )
695
- lv .texture ("wavenormal" , f"{ settings .INSTALL_PATH } /sea-water_normals.png" )
703
+ lv .texture ("wavetex" , f"{ settings .INSTALL_PATH } /data/ sea-water-1024x1024_gs.png" )
704
+ lv .texture ("wavenormal" , f"{ settings .INSTALL_PATH } /data/ sea-water_normals.png" )
696
705
#Need to set the property too or will not know to load the texture
697
706
if waves is None : waves = False
698
707
uniforms ["wavetex" ] = ""
@@ -707,7 +716,7 @@ def plot_earth(lv=None, radius=6.371, vertical_exaggeration=10, texture='bluemar
707
716
uniforms ["heightmax" ] = hrange [1 ];
708
717
709
718
if shaders is None :
710
- shaders = [f'{ settings .INSTALL_PATH } /earth_shader.vert' , f'{ settings .INSTALL_PATH } /earth_shader.frag' ]
719
+ shaders = [f'{ settings .INSTALL_PATH } /data/ earth_shader.vert' , f'{ settings .INSTALL_PATH } /data /earth_shader.frag' ]
711
720
712
721
#Split kwargs into global props, object props and uniform values
713
722
objargs = {}
0 commit comments