Skip to content

Commit 9abaab9

Browse files
Enhance documentation with FAQ and installation guide (#22)
* Add comprehensive FAQ documentation and enhance installation guide - Created a new FAQ document (faq.md) covering common questions and troubleshooting for the EOPF GeoZarr library. - Added detailed installation instructions (installation.md) including methods, dependencies, and troubleshooting tips. - Introduced a Quick Start guide (quickstart.md) to facilitate initial usage of the library. - Updated index.md to improve navigation and highlight key features of the library. - Revised geozarr-specification-contribution.md to reflect changes in related documentation links. - Enhanced mkdocs.yml for better organization and navigation of the documentation site. - Specified version requirements for pydantic-zarr in uv.lock for consistency. * Enhance documentation with additional details on S3 credentials, chunking, and troubleshooting for EOPF GeoZarr library
1 parent 9add75b commit 9abaab9

13 files changed

Lines changed: 2329 additions & 58 deletions

.github/workflows/build_uv_cache.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ on:
88
- "uv.lock"
99
- "pyproject.toml"
1010
workflow_dispatch:
11+
schedule:
12+
- cron: "0 0 */5 * *" # Every 5 days, before cache expiry
1113

1214
jobs:
1315
build-cache:

README.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,13 +83,15 @@ eopf-geozarr convert local_input.zarr s3://my-bucket/geozarr-data/output.zarr --
8383
Before using S3 output, ensure your S3 credentials are configured:
8484

8585
**For AWS S3:**
86+
8687
```bash
8788
export AWS_ACCESS_KEY_ID=your_access_key
8889
export AWS_SECRET_ACCESS_KEY=your_secret_key
8990
export AWS_DEFAULT_REGION=us-east-1
9091
```
9192

9293
**For OVH Cloud Object Storage:**
94+
9395
```bash
9496
export AWS_ACCESS_KEY_ID=your_ovh_access_key
9597
export AWS_SECRET_ACCESS_KEY=your_ovh_secret_key
@@ -98,6 +100,7 @@ export AWS_ENDPOINT_URL=https://s3.gra.cloud.ovh.net # OVH endpoint
98100
```
99101

100102
**For other S3-compatible providers:**
103+
101104
```bash
102105
export AWS_ACCESS_KEY_ID=your_access_key
103106
export AWS_SECRET_ACCESS_KEY=your_secret_key
@@ -106,6 +109,7 @@ export AWS_ENDPOINT_URL=https://your-s3-endpoint.com
106109
```
107110

108111
**Alternative: AWS CLI Configuration**
112+
109113
```bash
110114
aws configure
111115
# Note: For custom endpoints, you'll still need to set AWS_ENDPOINT_URL
@@ -150,6 +154,7 @@ The library includes advanced chunk alignment logic to prevent the common issue
150154
- **Fallback Logic**: For non-dask arrays, uses reasonable chunk sizes that don't exceed data dimensions
151155

152156
This prevents errors like:
157+
153158
```
154159
❌ Failed to write tci after 2 attempts: Specified Zarr chunks encoding['chunks']=(1, 3660, 3660)
155160
for variable named 'tci' would overlap multiple Dask chunks
@@ -216,6 +221,7 @@ dt_geozarr = create_geozarr_dataset(
216221
Create a GeoZarr-spec 0.4 compliant dataset from EOPF data.
217222

218223
**Parameters:**
224+
219225
- `dt_input` (xr.DataTree): Input EOPF DataTree
220226
- `groups` (List[str]): List of group names to process as Geozarr datasets
221227
- `output_path` (str): Output path for the Zarr store
@@ -225,17 +231,20 @@ Create a GeoZarr-spec 0.4 compliant dataset from EOPF data.
225231
- `max_retries` (int, default=3): Maximum number of retries for network operations
226232

227233
**Returns:**
234+
228235
- `xr.DataTree`: DataTree containing the GeoZarr compliant data
229236

230237
#### `setup_datatree_metadata_geozarr_spec_compliant`
231238

232239
Set up GeoZarr-spec compliant CF standard names and CRS information.
233240

234241
**Parameters:**
242+
235243
- `dt` (xr.DataTree): The data tree containing the datasets to process
236244
- `groups` (List[str]): List of group names to process as Geozarr datasets
237245

238246
**Returns:**
247+
239248
- `Dict[str, xr.Dataset]`: Dictionary of datasets with GeoZarr compliance applied
240249

241250
### Utility Functions
@@ -249,13 +258,16 @@ Downsample a 2D array using block averaging.
249258
Calculate a chunk size that divides evenly into the dimension size. This ensures that Zarr chunks align properly with the data dimensions, preventing chunk overlap issues when writing with Dask.
250259

251260
**Parameters:**
261+
252262
- `dimension_size` (int): Size of the dimension to chunk
253263
- `target_chunk_size` (int): Desired chunk size
254264

255265
**Returns:**
266+
256267
- `int`: Aligned chunk size that divides evenly into dimension_size
257268

258269
**Example:**
270+
259271
```python
260272
from eopf_geozarr.conversion.utils import calculate_aligned_chunk_size
261273

@@ -329,6 +341,7 @@ pytest
329341
### Code Quality
330342

331343
The project uses:
344+
332345
- **Black** for code formatting
333346
- **isort** for import sorting
334347
- **flake8** for linting

0 commit comments

Comments
 (0)