Skip to content

make it clear where a YAXArray is stored #605

Description

@gdkrmr

It is often not clear where the actual data of a YAXArray is stored. It would be nice to know if a cube was stored in memory, on a local path or on some remote location. In the example below there is no indicator in the printed output of the object that indicates where it is stored.

It would also be nice to have some kind of function store_path or similar that could indicate this.

julia> dc_maps[:air_temperature_2m]
┌ 1440×720×1978 YAXArray{Float32, 3} Mean Air Temperature at 2 m ┐
├────────────────────────────────────────────────────────────────┴───────────────────────────────────────────────────── dims ┐
  ↓ lon Sampled{Float64} -179.875:0.25:179.875 ForwardOrdered Regular Points,
  → lat Sampled{Float64} -89.875:0.25:89.875 ForwardOrdered Regular Points,
  ↗ time Sampled{DateTime} [DateTime("1979-01-05T00:00:00"), …, DateTime("2021-12-31T00:00:00")] ForwardOrdered Irregular Points                                                                                                                        
├────────────────────────────────────────────────────────────────────────────────────────────────────────────────── metadata ┤
  Dict{String, Any} with 27 entries:
  "original_scale_factor"     => 1.0
  "long_name"                 => "Mean Air Temperature at 2 m"
  "original_add_offset"       => 0.0
  "time_coverage_end"         => "2021-12-27T00:00:00.000000000"
  "acknowledgment"            => "ERA5 hourly data on single levels from 1959 to present"
  "geospatial_lat_resolution" => 0.25
  "time_coverage_start"       => "1979-01-01T00:00:00.000000000"
  "name"                      => "air_temperature_2m"
  "standard_name"             => "mean_air_temperature_2m"
  "reported_day"              => 5.0
  "description"               => "ERA5 Reanalysis Products"
  "processing_steps"          => Any["Merging nc files", "Resampling by daily mean", "Converting to °C from K", "Resampling b…
  "original_name"             => "t2m"
  "date_modified"             => "2022-11-04 15:41:36.233472"
  "references"                => Any["https://confluence.ecmwf.int/display/CKB/ERA5%3A+data+documentation"]
  "geospatial_lat_min"        => -89.875
  "temporal_resolution"       => "8D"
  "geospatial_lon_resolution" => 0.25
  "time_period"               => "8D"
  "_FillValue"                => NaN
  "units"                     => "°C"
  "project"                   => "DeepESDL"
  "geospatial_lon_max"        => 179.875
  "source"                    => Any["https://cds.climate.copernicus.eu/cdsapp#!/dataset/reanalysis-era5-single-levels"]
  "license"                   => "Terms and conditions of the DeepESDL data distribution"
  "geospatial_lat_max"        => 89.875
  "geospatial_lon_min"        => -179.875
├───────────────────────────────────────────────────────────────────────────────────────────────────────────── loaded lazily ┤
  data size: 7.64 GB
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘


julia> readcubedata(dc_maps[:air_temperature_2m])
┌ Warning: Loading a Cube of size 7.64 GB.
└ @ YAXArrays.Cubes ~/.julia/packages/YAXArrays/2yFST/src/Cubes/Cubes.jl:254
┌ 1440×720×1978 YAXArray{Float32, 3} Mean Air Temperature at 2 m ┐
├────────────────────────────────────────────────────────────────┴───────────────────────────────────────────────────── dims ┐
  ↓ lon Sampled{Float64} -179.875:0.25:179.875 ForwardOrdered Regular Points,
  → lat Sampled{Float64} -89.875:0.25:89.875 ForwardOrdered Regular Points,
  ↗ time Sampled{DateTime} [DateTime("1979-01-05T00:00:00"), …, DateTime("2021-12-31T00:00:00")] ForwardOrdered Irregular Points                                                                                                                        
├────────────────────────────────────────────────────────────────────────────────────────────────────────────────── metadata ┤
  Dict{String, Any} with 27 entries:
  "original_scale_factor"     => 1.0
  "long_name"                 => "Mean Air Temperature at 2 m"
  "original_add_offset"       => 0.0
  "time_coverage_end"         => "2021-12-27T00:00:00.000000000"
  "acknowledgment"            => "ERA5 hourly data on single levels from 1959 to present"
  "geospatial_lat_resolution" => 0.25
  "time_coverage_start"       => "1979-01-01T00:00:00.000000000"
  "name"                      => "air_temperature_2m"
  "standard_name"             => "mean_air_temperature_2m"
  "reported_day"              => 5.0
  "description"               => "ERA5 Reanalysis Products"
  "processing_steps"          => Any["Merging nc files", "Resampling by daily mean", "Converting to °C from K", "Resampling b…
  "original_name"             => "t2m"
  "date_modified"             => "2022-11-04 15:41:36.233472"
  "references"                => Any["https://confluence.ecmwf.int/display/CKB/ERA5%3A+data+documentation"]
  "geospatial_lat_min"        => -89.875
  "temporal_resolution"       => "8D"
  "geospatial_lon_resolution" => 0.25
  "time_period"               => "8D"
  "_FillValue"                => NaN
  "units"                     => "°C"
  "project"                   => "DeepESDL"
  "geospatial_lon_max"        => 179.875
  "source"                    => Any["https://cds.climate.copernicus.eu/cdsapp#!/dataset/reanalysis-era5-single-levels"]
  "license"                   => "Terms and conditions of the DeepESDL data distribution"
  "geospatial_lat_max"        => 89.875
  "geospatial_lon_min"        => -179.875
├────────────────────────────────────────────────────────────────────────────────────────────────────────── loaded in memory ┤
  data size: 7.64 GB
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘



Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions