The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.
This vignette demonstrates visualizing astronomical data from the Gaia star catalog. The example showcases: - 5 million stars from the 1.8 billion element catalog - Raster density visualization revealing the Milky Way - Hertzsprung-Russell diagram (color vs. magnitude) - Crossfilter interactions between multiple views
Note: This example uses remote Parquet data (may take a few seconds to load).
library(rMosaic)
library(DBI)
library(duckdb)
# Build the spec
gaia_spec <- list(
meta = list(
title = "Gaia Star Catalog",
description = paste(
"A 5M row sample of the 1.8B element Gaia star catalog.",
"A `raster` sky map reveals our Milky Way galaxy.",
"Select high parallax stars in the histogram to reveal a",
"Hertzsprung-Russell diagram in the plot of stellar color vs. magnitude on the right.",
"_You may need to wait a few seconds for the dataset to load._",
sep = "\n\n"
)
),
data = list(
gaia = paste(
"-- compute u and v with natural earth projection",
"WITH prep AS (",
" SELECT",
" radians((-l + 540) % 360 - 180) AS lambda,",
" radians(b) AS phi,",
" asin(sqrt(3)/2 * sin(phi)) AS t,",
" t^2 AS t2,",
" t2^3 AS t6,",
" *",
" FROM 'https://idl.uw.edu/mosaic-datasets/data/gaia-5m.parquet'",
" WHERE parallax BETWEEN -5 AND 20",
" AND phot_g_mean_mag IS NOT NULL",
" AND bp_rp IS NOT NULL",
")",
"SELECT",
" (1.340264 * \"lambda\" * cos(t)) /",
" (sqrt(3)/2 * (1.340264",
" + (-0.081106 * 3 * t2)",
" + (t6 * (0.000893 * 7 + 0.003796 * 9 * t2)))) AS u,",
" t * (1.340264",
" + (-0.081106 * t2)",
" + (t6 * (0.000893 + 0.003796 * t2))) AS v,",
" * EXCLUDE('t','t2','t6')",
"FROM prep",
sep = "\n"
)
),
params = list(
brush = list(select = "crossfilter"),
bandwidth = 0,
pixelSize = 2,
scaleType = "sqrt"
),
hconcat = list(
list(
vconcat = list(
# Top: Sky map with Natural Earth projection
list(
plot = list(
list(mark = "raster",
data = list(from = "gaia", filterBy = "$brush"),
x = "u", y = "v",
fill = "density",
bandwidth = "$bandwidth",
pixelSize = "$pixelSize"
),
list(select = "intervalXY", pixelSize = 2, as = "$brush")
),
xyDomain = "Fixed",
colorScale = "$scaleType",
colorScheme = "viridis",
width = 440,
height = 250,
marginLeft = 25,
marginTop = 20,
marginRight = 1
),
# Bottom row: magnitude and parallax histograms
list(
hconcat = list(
# Magnitude histogram
list(
plot = list(
list(mark = "rectY",
data = list(from = "gaia", filterBy = "$brush"),
x = list(bin = "phot_g_mean_mag"),
y = list(count = NULL),
fill = "steelblue",
inset = 0.5
),
list(select = "intervalX", as = "$brush")
),
xDomain = "Fixed",
yScale = "$scaleType",
yGrid = TRUE,
width = 220,
height = 120,
marginLeft = 65
),
# Parallax histogram
list(
plot = list(
list(mark = "rectY",
data = list(from = "gaia", filterBy = "$brush"),
x = list(bin = "parallax"),
y = list(count = NULL),
fill = "steelblue",
inset = 0.5
),
list(select = "intervalX", as = "$brush")
),
xDomain = "Fixed",
yScale = "$scaleType",
yGrid = TRUE,
width = 220,
height = 120,
marginLeft = 65
)
)
)
)
),
list(hspace = 10),
# Right: Hertzsprung-Russell diagram (color vs. magnitude)
list(
plot = list(
list(mark = "raster",
data = list(from = "gaia", filterBy = "$brush"),
x = "bp_rp",
y = "phot_g_mean_mag",
fill = "density",
bandwidth = "$bandwidth",
pixelSize = "$pixelSize"
),
list(select = "intervalXY", pixelSize = 2, as = "$brush")
),
xyDomain = "Fixed",
colorScale = "$scaleType",
colorScheme = "viridis",
yReverse = TRUE,
width = 230,
height = 370,
marginLeft = 25,
marginTop = 20,
marginRight = 1
)
)
)
# Launch the app
runMosaicApp(
spec = gaia_spec,
specType = "yaml",
data = NULL, # all data loaded via DuckDB + remote Parquet
title = "Gaia Star Catalog",
backend = "wasm"
)pixelSizescaleType = "sqrt") for better
contrastThis demonstrates Mosaic’s ability to handle millions of rows with complex spatial transformations and coordinated interactions.
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.