Sentinel-3 zarr products
OLCI Level-1
"https://common.s3.sbg.perf.cloud.ovh.net/eoproducts/S03OLCEFR_20230506T015316_0180_B117_T883.zarr.zip"
local_path = joinpath(tempdir(),OLCEFR)
Downloads.download(olci_path, local_path)
efr = open_datatree(local_path)
efr
π root
ββ π conditions
ββ ββ π geometry
ββ ββ π image
ββ ββ π instrument
ββ ββ π meteorology
ββ ββ π orphans
ββ π measurements
ββ ββ π orphans
ββ π quality
ββ ββ π orphans
The product is represented by a hierarchical tree structure YAXTrees.YAXTree
Opening measurements data
rad = efr.measurements.oa01_radiance
rad
β 4865Γ4092 YAXArray{Union{Missing, Float64}, 2} β
ββββββββββββββββββββββββββββββββββββββββββββββββββ΄βββββββββββ dims β
β columns Sampled{Int64} 1:4865 ForwardOrdered Regular Points,
β rows Sampled{Int64} 1:4092 ForwardOrdered Regular Points
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ metadata β€
Dict{String, Any} with 12 entries:
"long_name" => "TOA radiance for OLCI acquisition band oa01"
"scale_factor" => 0.0136349
"name" => "oa01_radiance"
"add_offset" => 0.0
"standard_name" => "toa_upwelling_spectral_radiance"
"valid_min" => 0
"valid_max" => 65534
"coordinates" => "time_stamp latitude longitude"
"_FillValue" => 0xffff
"units" => "mW.m-2.sr-1.nm-1"
"short_name" => "oa01_radiance"
"missing_value" => 0xffff
ββββββββββββββββββββββββββββββββββββββββββββββββββββ loaded lazily β€
data size: 151.88 MB
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
The nodes of the YAXTree
are YAXArrays.YAXArray
or YAXArrays.Dataset
rad.data
4865Γ4092 DiskArrayTools.CFDiskArray{Union{Missing, Float64}, 2, UInt16, Zarr.ZArray{UInt16, 2, Zarr.BloscCompressor, Zarr.ConsolidatedStore{Zarr.ZipStore{Vector{UInt8}}}}, Float64}
Chunked: (
[1024, 1024, 1024, 1024, 769]
[1024, 1024, 1024, 1020]
)
The underlying data is a CFDiskArray
Plot data
We use Makie.jl
to plot the data.
lat=efr.measurements.latitude.data
lon=efr.measurements.longitude.data
val=replace(rad.data, missing => 0.0)
min,max = minimum(val), maximum(val)
fig=Figure(size=(1200,600))
ax1=Axis(fig[1, 1], title=rad.properties["long_name"],
xlabel="Longitude", ylabel="Latitude")
s=surface!(ax1,lon, lat, zeros(size(lon));
color=val,colorrange=(min,max),colormap=:rainbow, shading=NoShading)
Colorbar(fig[1, 2], s)
ax2=Axis(fig[1, 3], title=rad.properties["long_name"],
xlabel="Columns", ylabel="Rows")
heatmap!(ax2, val, colormap=:rainbow, colorrange=(min,max))
fig

Open meteorological conditions
meteo = efr.conditions.meteorology
π meteorology
Interpolate the atmospheric temperature at p=832.2 hPa
tp = linear_interpolation(meteo, "atmospheric_temperature_profile", dims="pressure_level", value=832.2)
fig=Figure(size=(800,600))
ax=Axis(fig[1, 1], title="atmospheric_temperature_profile @ 832.2 hPa",
xlabel="tp_columns", ylabel="tp_rows")
heatmap!(ax,tp.data)
fig

SLSTR Level-2 FRP
"https://common.s3.sbg.perf.cloud.ovh.net/eoproducts/S03SLSFRP_20200908T182648_0179_A298_S883.zarr.zip"
local_path = joinpath(tempdir(),SLSFRP)
Downloads.download(frp_path, local_path)
frp = open_datatree(local_path)
frp
π root
ββ π conditions
ββ ββ π geometry
ββ ββ π meteorology
ββ ββ π processing
ββ ββ ββ π fnadir
ββ ββ ββ ββ π orphan
ββ ββ ββ π inadir
ββ ββ ββ ββ π orphan
ββ ββ π time_an
ββ ββ π time_bn
ββ ββ π time_in
ββ π measurements
ββ ββ π anadir
ββ ββ π bnadir
ββ ββ π fnadir
ββ ββ ββ π orphan
ββ ββ π inadir
ββ ββ ββ π orphan
ββ π quality
ββ ββ π fnadir
ββ ββ π inadir
The product is represented by a hierarchical tree structure YAXTrees.YAXTree
Opening measurements data (1D)
meas = frp.measurements.inadir
meas
π inadir
ββ π orphan
Plot Active Fire Pixel on a Plate-CarrΓ©e grid
using CairoMakie, GeoMakie
frp_vals = Int64.(round.(frp.measurements.inadir.frp_mwir.data))
fig = Figure(size=(800,600))
ax = GeoAxis(fig[1,1]; dest = "+proj=merc")
GeoMakie.xlims!(ax, -125, -114)
GeoMakie.ylims!(ax, 40, 50)
lines!(ax, GeoMakie.coastlines(50), color=:black)
s=GeoMakie.scatter!(ax,
frp.measurements.inadir.longitude.data,
frp.measurements.inadir.latitude.data,
color=frp_vals,
colormap=:thermal,
markersize=15,
colorrange=(0, 100),
)
Colorbar(fig[1,2],s, ticks=0:20:100)
fig
