Configuration#

gedih3 works out of the box with no configuration. By default, all files are stored under ~/gedi_data/:

Data Type

Default Location

Downloaded HDF5 files

~/gedih3_db/soc/

H3 database

~/gedih3_db/h3/

Temporary files

~/gedih3_db/tmp/

If the defaults work for you, skip this page entirely.


Customizing Storage Paths#

To use different storage locations, set environment variables or create a ~/.gedih3.env file.

Option A: Environment Variables#

export GH3_DEFAULT_DOWNLOAD_DIR=/data/gedi
export GH3_DEFAULT_H3_DIR=/data/gedi/h3_db
export GH3_DEFAULT_SOC_DIR=/data/gedi/soc
export GH3_DEFAULT_TMP_DIR=/data/gedi/tmp

Option B: create a ~/.gedih3.env File#

GH3_DEFAULT_DOWNLOAD_DIR=/data/gedi
GH3_DEFAULT_H3_DIR=/data/gedi/h3_db
GH3_DEFAULT_SOC_DIR=/data/gedi/soc
GH3_DEFAULT_TMP_DIR=/data/gedi/tmp

Tip

You don’t need to set all the above environment variables, only the ones you want to modify - only setting GH3_DEFAULT_H3_DIR is enough for most applications.

Configuration Priority#

Settings are applied in this order (highest to lowest priority):

  1. CLI arguments (e.g., -d /path/to/database)

  2. Environment variables

  3. ~/.gedih3.env file

  4. Package defaults (~/gedi_data/)


Dask Configuration#

gedih3 uses Dask for distributed processing. By default, it creates a local cluster sized to your machine. Most users don’t need to change this.

CLI Dask Flags#

Flag

Description

-N

Number of workers (default: half of all available cores)

-T

Threads per worker

-M

Memory per worker (e.g., 8GB, default splits all memory equaly across workers)

-P

Dask dashboard port

-s

Connect to an existing Dask scheduler (e.g. tcp://localhost:8787)

Python: Dask Client#

from dask.distributed import Client

client = Client(n_workers=8, threads_per_worker=1, memory_limit='8GB')
# All gedih3 operations automatically use this client