Helios¶

Solar analysis and forecasts powered by EarthNet¶

Hourly analysis¶

In [ ]:
import xarray as xr

ds = xr.open_zarr("https://data.myzeus.ai/solar/analysis-hourly/latest.zarr")
ds
Out[ ]:
<xarray.Dataset> Size: 799GB
Dimensions:  (time: 8760, lat: 2745, lon: 2770)
Coordinates:
  * lat      (lat) float64 22kB -78.57 -78.52 -78.46 -78.4 ... 78.46 78.52 78.57
  * lon      (lon) float64 22kB -154.3 -154.2 -154.2 -154.1 ... 4.18 4.24 4.29
  * time     (time) datetime64[ns] 70kB 2025-01-01 ... 2025-12-31T23:00:00
Data variables:
    dhi      (time, lat, lon) float32 266GB dask.array<chunksize=(1, 1000, 1000), meta=np.ndarray>
    dni      (time, lat, lon) float32 266GB dask.array<chunksize=(1, 1000, 1000), meta=np.ndarray>
    ghi      (time, lat, lon) float32 266GB dask.array<chunksize=(1, 1000, 1000), meta=np.ndarray>
xarray.Dataset
    • time: 8760
    • lat: 2745
    • lon: 2770
    • lat
      (lat)
      float64
      -78.57 -78.52 ... 78.52 78.57
      axis :
      Y
      standard_name :
      latitude
      units :
      degrees_north
      array([-78.57, -78.52, -78.46, ...,  78.46,  78.52,  78.57])
    • lon
      (lon)
      float64
      -154.3 -154.2 -154.2 ... 4.24 4.29
      axis :
      X
      standard_name :
      longitude
      units :
      degrees_east
      array([-154.26, -154.2 , -154.15, ...,    4.18,    4.24,    4.29])
    • time
      (time)
      datetime64[ns]
      2025-01-01 ... 2025-12-31T23:00:00
      axis :
      T
      standard_name :
      time
      array(['2025-01-01T00:00:00.000000000', '2025-01-01T01:00:00.000000000',
             '2025-01-01T02:00:00.000000000', ..., '2025-12-31T21:00:00.000000000',
             '2025-12-31T22:00:00.000000000', '2025-12-31T23:00:00.000000000'],
            dtype='datetime64[ns]')
    • dhi
      (time, lat, lon)
      float32
      dask.array<chunksize=(1, 1000, 1000), meta=np.ndarray>
      units :
      W m-2
      Array Chunk
      Bytes 248.13 GiB 3.81 MiB
      Shape (8760, 2745, 2770) (1, 1000, 1000)
      Dask graph 78840 chunks in 2 graph layers
      Data type float32 numpy.ndarray
      2770 2745 8760
    • dni
      (time, lat, lon)
      float32
      dask.array<chunksize=(1, 1000, 1000), meta=np.ndarray>
      units :
      W m-2
      Array Chunk
      Bytes 248.13 GiB 3.81 MiB
      Shape (8760, 2745, 2770) (1, 1000, 1000)
      Dask graph 78840 chunks in 2 graph layers
      Data type float32 numpy.ndarray
      2770 2745 8760
    • ghi
      (time, lat, lon)
      float32
      dask.array<chunksize=(1, 1000, 1000), meta=np.ndarray>
      units :
      W m-2
      Array Chunk
      Bytes 248.13 GiB 3.81 MiB
      Shape (8760, 2745, 2770) (1, 1000, 1000)
      Dask graph 78840 chunks in 2 graph layers
      Data type float32 numpy.ndarray
      2770 2745 8760
    • lat
      PandasIndex
      PandasIndex(Index([-78.57, -78.52, -78.46,  -78.4, -78.35, -78.29, -78.23, -78.17, -78.12,
             -78.06,
             ...
              78.06,  78.12,  78.17,  78.23,  78.29,  78.35,   78.4,  78.46,  78.52,
              78.57],
            dtype='float64', name='lat', length=2745))
    • lon
      PandasIndex
      PandasIndex(Index([-154.26,  -154.2, -154.15, -154.09, -154.03, -153.97, -153.92, -153.86,
              -153.8, -153.75,
             ...
                3.78,    3.84,    3.89,    3.95,    4.01,    4.07,    4.12,    4.18,
                4.24,    4.29],
            dtype='float64', name='lon', length=2770))
    • time
      PandasIndex
      PandasIndex(DatetimeIndex(['2025-01-01 00:00:00', '2025-01-01 01:00:00',
                     '2025-01-01 02:00:00', '2025-01-01 03:00:00',
                     '2025-01-01 04:00:00', '2025-01-01 05:00:00',
                     '2025-01-01 06:00:00', '2025-01-01 07:00:00',
                     '2025-01-01 08:00:00', '2025-01-01 09:00:00',
                     ...
                     '2025-12-31 14:00:00', '2025-12-31 15:00:00',
                     '2025-12-31 16:00:00', '2025-12-31 17:00:00',
                     '2025-12-31 18:00:00', '2025-12-31 19:00:00',
                     '2025-12-31 20:00:00', '2025-12-31 21:00:00',
                     '2025-12-31 22:00:00', '2025-12-31 23:00:00'],
                    dtype='datetime64[ns]', name='time', length=8760, freq=None))
In [2]:
ds.sel(time="2025-03-07T14").dhi.plot(cmap="magma")
Out[2]:
<matplotlib.collections.QuadMesh at 0x15e2e5cd0>
No description has been provided for this image