diff --git a/docs/tutorials/dmrpp-virtualizarr.ipynb b/docs/tutorials/dmrpp-virtualizarr.ipynb
new file mode 100644
index 00000000..fe643c31
--- /dev/null
+++ b/docs/tutorials/dmrpp-virtualizarr.ipynb
@@ -0,0 +1,2832 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Cloud optimized access to NASA data with earthaccess and virtualizarr\n",
+ "This notebook will focus on the usage of `earthaccess.open_virtual_dataset` and `earthaccess.open_virtual_mfdataset` to create cloud optimized reference files for the data stored in the cloud.\n",
+ "\n",
+ "All of the examples in this tutorial load data over https (`access=\"indirect\"`). However, there is a **significant** speed improvement when using these functions in-cloud and enabling `access=\"direct\"`. For example, using managed cloud JupyterHubs like NASA VEDA or 2i2c Openscapes. This is because the data is streamed directly from cloud storage to cloud compute.\n",
+ "\n",
+ "> WARNING: This feature is current experimental and may change in the future. This feature relies on NASA DMR++ metadata files which may not always be present for your dataset and you may get a `FileNotFoundError`.\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import earthaccess\n",
+ "import xarray as xr"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "32"
+ ]
+ },
+ "execution_count": 2,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# NASA JPL Multiscale Ultrahigh Resolution (MUR) Sea Surface Temperature (SST) dataset - 0.01 degree resolution\n",
+ "results = earthaccess.search_data(\n",
+ " temporal=(\"2010-01-01\", \"2010-01-31\"), short_name=\"MUR-JPL-L4-GLOB-v4.1\"\n",
+ ")\n",
+ "len(results)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "CPU times: user 1.37 s, sys: 189 ms, total: 1.55 s\n",
+ "Wall time: 17.6 s\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "
quality flag for height correction from crossover calibration
standard_name :
status_flag
flag_meanings :
good suspect bad
flag_values :
[0, 1, 2]
valid_min :
0
valid_max :
2
coordinates :
longitude latitude
comment :
Flag indicating the quality of the height correction from crossover calibration. Values of 0, 1, and 2 indicate that the correction is good, suspect, and bad, respectively.
source flag for significant wave height information used to compute sea state bias correction
standard_name :
status_flag
flag_meanings :
nadir_altimeter karin model
flag_masks :
[1, 2, 4]
valid_min :
0
valid_max :
7
coordinates :
longitude latitude
comment :
Bit flag that indicates the source of significant wave height information that was used to compute the sea state bias correction in sea_state_bias_cor.
good orbit_estimated_during_a_maneuver orbit_interpolated_over_data_gap orbit_extrapolated_for_a_duration_less_than_1_day orbit_extrapolated_for_a_duration_between_1_to_2_days orbit_extrapolated_for_a_duration_greater_than_2_days bad_attitude
flag_values :
[0, 4, 5, 6, 7, 8, 64]
valid_min :
0
valid_max :
64
coordinates :
longitude_nadir latitude_nadir
comment :
Flag indicating the quality of the reconstructed attitude and orbit ephemeris. A value of 0 indicates the reconstructed attitude and orbit ephemeris are both good. Non-zero values less than 64 indicate that the reconstructed attitude is good but there are issues that degrade the quality of the orbit ephemeris. A value of 64 indicates that the reconstructed attitude is degraded or bad.
source flag for significant wave height information used to compute wind speed from KaRIn
standard_name :
status_flag
flag_meanings :
nadir_altimeter karin model
flag_masks :
[1, 2, 4]
valid_min :
0
valid_max :
7
coordinates :
longitude latitude
comment :
Bit flag that indicates the source of significant wave height information that was used to compute the wind speed estimate from KaRIn data in wind_speed_karin_2.
Flag indicating the validity and type of processing applied to generate the wet troposphere correction (rad_wet_tropo_cor). A value of 0 indicates that open ocean processing is used, a value of 1 indicates coastal processing, and a value of 2 indicates that rad_wet_tropo_cor is invalid due to land contamination.
source flag for significant wave height information used to compute wind speed from KaRIn
standard_name :
status_flag
flag_meanings :
nadir_altimeter karin model
flag_masks :
[1, 2, 4]
valid_min :
0
valid_max :
7
coordinates :
longitude latitude
comment :
Bit flag that indicates the source of significant wave height information that was used to compute the wind speed estimate from KaRIn data in wind_speed_karin.
source flag for significant wave height information used to compute sea state bias correction
standard_name :
status_flag
flag_meanings :
nadir_altimeter karin model
flag_masks :
[1, 2, 4]
valid_min :
0
valid_max :
7
coordinates :
longitude latitude
comment :
Bit flag that indicates the source of significant wave height information that was used to compute the sea state bias correction in sea_state_bias_cor_2.
Equivalent vertical correction due to ionosphere delay. The reported sea surface height, latitude and longitude are computed after adding negative media corrections to uncorrected range along slant-range paths, accounting for the differential delay between the two KaRIn antennas. The equivalent vertical correction is computed by applying obliquity factors to the slant-path correction. Adding the reported correction to the reported sea surface height results in the uncorrected sea surface height.
Geocentric pole tide height. The total of the contribution from the solid-Earth (body) pole tide height, the ocean pole tide height, and the load pole tide height (i.e., the effect of the ocean pole tide loading of the Earth's crust).
European Centre for Medium-Range Weather Forecasts
institution :
ECMWF
units :
m
scale_factor :
0.0001
quality_flag :
ssh_karin_2_qual
valid_min :
-30000
valid_max :
-15000
coordinates :
longitude latitude
comment :
Equivalent vertical correction due to dry troposphere delay. The reported sea surface height, latitude and longitude are computed after adding negative media corrections to uncorrected range along slant-range paths, accounting for the differential delay between the two KaRIn antennas. The equivalent vertical correction is computed by applying obliquity factors to the slant-path correction. Adding the reported correction to the reported sea surface height results in the uncorrected sea surface height.
Non-equilibrium long-period ocean tide height. This value is reported as a relative displacement with repsect to ocean_tide_eq. This value can be added to ocean_tide_eq, ocean_tide_fes, or ocean_tide_got, or subtracted from ssha_karin and ssha_karin_2, to account for the total long-period ocean tides from equilibrium and non-equilibrium contributions.
Geocentric load tide height. The effect of the ocean tide loading of the Earth's crust. This value has already been added to the corresponding ocean tide height value (ocean_tide_got).
Model estimate of the effect on sea surface topography due to high frequency air pressure and wind effects and the low-frequency height from inverted barometer effect (inv_bar_cor). This value is subtracted from the ssh_karin and ssh_karin_2 to compute ssha_karin and ssha_karin_2, respectively. Use only one of inv_bar_cor and dac.
wet troposphere vertical correction from radiometer data
source :
Advanced Microwave Radiometer
units :
m
scale_factor :
0.0001
quality_flag :
ssh_karin_qual
valid_min :
-10000
valid_max :
0
coordinates :
longitude latitude
comment :
Equivalent vertical correction due to wet troposphere delay from radiometer measurements. The reported pixel height, latitude and longitude are computed after adding negative media corrections to uncorrected range along slant-range paths, accounting for the differential delay between the two KaRIn antennas. The equivalent vertical correction is computed by applying obliquity factors to the slant-path correction. Adding the reported correction to the reported sea surface height (ssh_karin) results in the uncorrected sea surface height.
Equilibrium long-period ocean tide height. This value has already been added to the corresponding ocean tide height values (ocean_tide_fes and ocean_tide_got).
wet troposphere vertical correction from weather model data
source :
European Centre for Medium-Range Weather Forecasts
institution :
ECMWF
units :
m
scale_factor :
0.0001
quality_flag :
ssh_karin_2_qual
valid_min :
-10000
valid_max :
0
coordinates :
longitude latitude
comment :
Equivalent vertical correction due to wet troposphere delay from weather model data. The reported pixel height, latitude and longitude are computed after adding negative media corrections to uncorrected range along slant-range paths, accounting for the differential delay between the two KaRIn antennas. The equivalent vertical correction is computed by applying obliquity factors to the slant-path correction. Adding the reported correction to the reported sea surface height (ssh_karin_2) results in the uncorrected sea surface height.
static inverse barometer effect on sea surface height
units :
m
scale_factor :
0.0001
valid_min :
-2000
valid_max :
2000
coordinates :
longitude latitude
comment :
Estimate of static effect of atmospheric pressure on sea surface height. Above average pressure lowers sea surface height. Computed by interpolating ECMWF pressure fields in space and time. The value is included in dac. To apply, add dac to ssha_karin and ssha_karin_2 and subtract inv_bar_cor.
Sea state bias correction used to compute ssh_karin. Adding the reported correction to the reported sea surface height results in the uncorrected sea surface height. The wind_speed_karin value is used to compute this quantity.
Geocentric load tide height. The effect of the ocean tide loading of the Earth's crust. This value has already been added to the corresponding ocean tide height value (ocean_tide_fes).
Sea state bias correction used to compute ssh_karin_2. Adding the reported correction to the reported sea surface height results in the uncorrected sea surface height. The wind_speed_karin_2 value is used to compute this quantity.
1-sigma uncertainty computed analytically using observed correlation and effective number of looks. Two-sided error bars (volumetric_correlation-volumetric_correlation_uncert, volumetric_correlation+volumetric_correlation_uncert) include 68% of probability distribution.
Height correction from crossover calibration. To apply this correction the value of height_cor_xover should be added to the value of ssh_karin, ssh_karin_2, ssha_karin, and ssha_karin_2.
Mean sea surface height above the reference ellipsoid. The value is referenced to the mean tide system, i.e. includes the permanent tide (zero frequency).
KMSF attitude yaw angle relative to the nadir track. The yaw angle is a right-handed rotation about the nadir (downward) direction. A yaw value of 0 deg indicates that the KMSF +x axis is aligned with the horizontal component of the Earth-relative velocity vector. A yaw value of 180 deg indicates that the spacecraft is in a yaw-flipped state, with the KMSF -x axis aligned with the horizontal component of the Earth-relative velocity vector.
heading of the spacecraft Earth-relative velocity vector
units :
degrees
scale_factor :
1e-06
quality_flag :
orbit_qual
valid_min :
0
valid_max :
359999999
coordinates :
longitude_nadir latitude_nadir
comment :
Angle with respect to true north of the horizontal component of the spacecraft Earth-relative velocity vector. A value of 90 deg indicates that the spacecraft velocity vector pointed due east. Values between 0 and 90 deg indicate that the velocity vector has a northward component, and values between 90 and 180 deg indicate that the velocity vector has a southward component.
Fully corrected sea surface height measured by KaRIn. The height is relative to the reference ellipsoid defined in the global attributes. This value is computed using radiometer measurements for wet troposphere effects on the KaRIn measurement (e.g., rad_wet_tropo_cor and sea_state_bias_cor).
weighted average longitude of samples used to compute SSH
standard_name :
longitude
units :
degrees_east
scale_factor :
1e-06
valid_min :
0
valid_max :
359999999
comment :
Longitude of measurement. East longitude relative to Greenwich meridian. This value may be biased away from a nominal grid location if some of the native, unsmoothed samples were discarded during processing.
Fully corrected sea surface height measured by KaRIn. The height is relative to the reference ellipsoid defined in the global attributes. This value is computed using model-based estimates for wet troposphere effects on the KaRIn measurement (e.g., model_wet_tropo_cor and sea_state_bias_cor_2).
Geoid height above the reference ellipsoid with a correction to refer the value to the mean tide system, i.e. includes the permanent tide (zero frequency).
Geocentric ocean tide height. Includes the sum total of the ocean tide, the corresponding load tide (load_tide_fes) and equilibrium long-period ocean tide height (ocean_tide_eq).
Geocentric ocean tide height. Includes the sum total of the ocean tide, the corresponding load tide (load_tide_got) and equilibrium long-period ocean tide height (ocean_tide_eq).
Mean sea surface height above the reference ellipsoid. The value is referenced to the mean tide system, i.e. includes the permanent tide (zero frequency).
weighted average latitude of samples used to compute SSH
standard_name :
latitude
units :
degrees_north
scale_factor :
1e-06
valid_min :
-80000000
valid_max :
80000000
comment :
Latitude of measurement [-80,80]. Positive latitude is North latitude, negative latitude is South latitude. This value may be biased away from a nominal grid location if some of the native, unsmoothed samples were discarded during processing.
Normalized radar cross section (sigma0) from KaRIn in real, linear units (not decibels). The value may be negative due to noise subtraction. The value is corrected for instrument calibration and atmospheric attenuation. A meteorological model provides the atmospheric attenuation (sig0_cor_atmos_model).
Normalized radar cross section (sigma0) from KaRIn in real, linear units (not decibels). The value may be negative due to noise subtraction. The value is corrected for instrument calibration and atmospheric attenuation. Radiometer measurements provide the atmospheric attenuation (sig0_cor_atmos_rad).
two-way atmospheric correction to sigma0 from radiometer data
source :
Advanced Microwave Radiometer
units :
1
quality_flag :
sig0_karin_qual
valid_min :
1.0
valid_max :
10.0
coordinates :
longitude latitude
comment :
Atmospheric correction to sigma0 from radiometer data as a linear power multiplier (not decibels). sig0_cor_atmos_rad is already applied in computing sig0_karin.
two-way atmospheric correction to sigma0 from model
source :
European Centre for Medium-Range Weather Forecasts
institution :
ECMWF
units :
1
quality_flag :
sig0_karin_2_qual
valid_min :
1.0
valid_max :
10.0
coordinates :
longitude latitude
comment :
Atmospheric correction to sigma0 from weather model data as a linear power multiplier (not decibels). sig0_cor_atmos_model is already applied in computing sig0_karin_2.
Time of measurement in seconds in the UTC time scale since 1 Jan 2000 00:00:00 UTC. [tai_utc_difference] is the difference between TAI and UTC reference time (seconds) for the first measurement of the data set. If a leap second occurs within the data set, the attribute leap_second is set to the UTC time at which the leap second occurs.
Time of measurement in seconds in the TAI time scale since 1 Jan 2000 00:00:00 TAI. This time scale contains no leap seconds. The difference (in seconds) with time in UTC is given by the attribute [time:tai_utc_difference].