--- title: "Reading Zarr V3" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{Reading Zarr V3} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ```{r, include = FALSE} knitr::opts_chunk$set( collapse = TRUE, comment = "#>", out.width = "100%" ) sample_dir <- tools::R_user_dir("pizzarr") clean <- !dir.exists(sample_dir) ``` pizzarr can read Zarr stores in both V2 and V3 format. This vignette demonstrates opening the same dataset (BCSD climate observations) stored in each format and shows the data are identical. ## Open V2 and V3 stores ```{r} library(pizzarr) v2_root <- pizzarr_sample("bcsd") v3_root <- pizzarr_sample("bcsd_v3") v2 <- zarr_open(v2_root) v3 <- zarr_open(v3_root) ``` ## Compare group attributes ```{r} v2_attrs <- v2$get_attrs()$to_list() v3_attrs <- v3$get_attrs()$to_list() identical(v2_attrs, v3_attrs) ``` ## Compare arrays ```{r} # Precipitation array v2_pr <- v2$get_item("pr")$as.array() v3_pr <- v3$get_item("pr")$as.array() identical(v2_pr, v3_pr) # Temperature array v2_tas <- v2$get_item("tas")$as.array() v3_tas <- v3$get_item("tas")$as.array() identical(v2_tas, v3_tas) # Coordinate arrays identical(v2$get_item("latitude")$as.array(), v3$get_item("latitude")$as.array()) identical(v2$get_item("longitude")$as.array(), v3$get_item("longitude")$as.array()) identical(v2$get_item("time")$as.array(), v3$get_item("time")$as.array()) ``` ## Inspect an array ```{r} v3$get_item("pr")$get_shape() v3$get_item("pr")$get_attrs()$to_list() ``` ```{r, include=FALSE} if(clean) unlink(sample_dir, recursive = TRUE) ```