From a4ef58276728ec859a1a1a6cf1220f0a6bd45dfe Mon Sep 17 00:00:00 2001
From: christof-wittreich
Date: Fri, 29 Dec 2023 09:27:05 -0500
Subject: [PATCH 1/8] Most stories preloaded
---
web/js/containers/tour.js | 30 ++++++++++++++++++++++++++-
web/js/map/layerbuilder.js | 5 ++++-
web/js/modules/map/util.js | 42 ++++++++++++++++++++++++++++++++++++++
3 files changed, 75 insertions(+), 2 deletions(-)
diff --git a/web/js/containers/tour.js b/web/js/containers/tour.js
index 5a9e1c4d7a..6416421a08 100644
--- a/web/js/containers/tour.js
+++ b/web/js/containers/tour.js
@@ -39,6 +39,7 @@ import { changeTab as changeTabAction } from '../modules/sidebar/actions';
import ErrorBoundary from './error-boundary';
import history from '../main';
import util from '../util/util';
+import { promiseImageryForTour } from '../modules/map/util';
const { HIDE_TOUR } = safeLocalStorage.keys;
@@ -138,7 +139,7 @@ class Tour extends React.Component {
selectTour(e, currentStory, currentStoryIndex, currentStoryId) {
const {
- config, renderedPalettes, selectTour, processStepLink, isKioskModeActive, isEmbedModeActive,
+ config, renderedPalettes, selectTour, processStepLink, isKioskModeActive, isEmbedModeActive, preProcessStepLink, promiseImageryForTour,
} = this.props;
if (e) e.preventDefault();
const kioskParam = this.getKioskParam(isKioskModeActive);
@@ -157,6 +158,13 @@ class Tour extends React.Component {
this.fetchMetadata(currentStory, 0);
const storyStep = currentStory.steps[0];
const transitionParam = getTransitionAttr(storyStep.transition);
+ currentStory.steps.forEach((step) => {
+ preProcessStepLink(
+ `${step.stepLink}&tr=${currentStoryId}${transitionParam}${kioskParam}&em=${isEmbedModeActive}`,
+ config,
+ promiseImageryForTour,
+ );
+ });
processStepLink(
currentStoryId,
1,
@@ -522,6 +530,24 @@ const mapDispatchToProps = (dispatch) => ({
dispatch({ type: LOCATION_POP_ACTION, payload: location });
}
},
+ preProcessStepLink: async (search, config, promiseImageryForTour) => {
+ search = search.split('/?').pop();
+ const parameters = util.fromQueryString(search);
+ let layers = [];
+ const promises = [];
+
+ if (parameters.l) {
+ layers = layersParse12(parameters.l, config);
+ layers = uniqBy(layers, 'id');
+ promises.push(promiseImageryForTour(layers, parameters.t));
+ if (parameters.l1) {
+ layers = layersParse12(parameters.l1, config);
+ layers = uniqBy(layers, 'id');
+ promises.push(promiseImageryForTour(layers, parameters.t1, 'activeB'));
+ }
+ }
+ await Promise.all(promises);
+ },
startTour: () => {
dispatch(startTourAction());
},
@@ -561,6 +587,7 @@ const mapStateToProps = (state) => {
screenHeight,
renderedPalettes: palettes.rendered,
activeTab: sidebar.activeTab,
+ promiseImageryForTour: (layers, dateString, activeString) => promiseImageryForTour(state, layers, dateString, activeString),
};
};
@@ -582,6 +609,7 @@ Tour.propTypes = {
isActive: PropTypes.bool,
isKioskModeActive: PropTypes.bool,
processStepLink: PropTypes.func,
+ preProcessStepLink: PropTypes.func,
renderedPalettes: PropTypes.object,
resetProductPicker: PropTypes.func,
screenHeight: PropTypes.number,
diff --git a/web/js/map/layerbuilder.js b/web/js/map/layerbuilder.js
index 71ee646a2a..a180ea222b 100644
--- a/web/js/map/layerbuilder.js
+++ b/web/js/map/layerbuilder.js
@@ -115,6 +115,9 @@ export default function mapLayerBuilder(config, cache, store) {
if (isVectorStyleActive(def.id, activeGroupStr, state)) {
style = getVectorStyleKeys(def.id, undefined, state);
}
+ if (options.style) {
+ style = options.style;
+ }
return [layerId, projId, date, style, activeGroupStr].join(':');
};
@@ -241,7 +244,7 @@ export default function mapLayerBuilder(config, cache, store) {
previousDate,
} = getRequestDates(def, options);
const date = closestDate;
- if (date) {
+ if (date && !options.date) {
options.date = date;
}
const dateOptions = { date, nextDate, previousDate };
diff --git a/web/js/modules/map/util.js b/web/js/modules/map/util.js
index 5e1cdc65ee..5433169af2 100644
--- a/web/js/modules/map/util.js
+++ b/web/js/modules/map/util.js
@@ -11,6 +11,7 @@ import OlRendererCanvasTileLayer from 'ol/renderer/canvas/TileLayer';
import Promise from 'bluebird';
import { encode } from '../link/util';
import { getActiveVisibleLayersAtDate } from '../layers/selectors';
+import { tryCatchDate } from '../date/util';
/*
* Set default extent according to time of day:
@@ -305,3 +306,44 @@ export async function promiseImageryForTime(state, date, activeString) {
selected.getView().changed();
return date;
}
+
+/**
+ * Trigger tile requests for all given layers on a given date.
+ * @method promiseImageryForTour
+ */
+export async function promiseImageryForTour(state, layers, dateString, activeString) {
+ const { map } = state;
+ if (!map.ui.proj) return;
+ const {
+ cache, selected, createLayer, layerKey,
+ } = map.ui;
+ const appNow = lodashGet(state, 'date.appNow');
+ const date = tryCatchDate(dateString, appNow);
+ await Promise.all(layers.map(async (layer) => {
+ if (layer.type === 'granule' || layer.type === 'ttiler') {
+ return Promise.resolve();
+ }
+ const options = { date, group: activeString };
+ const keys = [];
+ if (layer.custom) {
+ keys.push(`palette=${layer.custom}`);
+ }
+ if (layer.min) {
+ keys.push(`min=${layer.min}`);
+ }
+ if (layer.max) {
+ keys.push(`max=${layer.max}`);
+ }
+ if (layer.squash) {
+ keys.push('squash');
+ }
+ if (keys.length > 0) {
+ options.style = keys.join(',');
+ }
+
+ const key = layerKey(layer, options, state);
+ const layerGroup = cache.getItem(key) || await createLayer(layer, options);
+ return promiseLayerGroup(layerGroup, selected);
+ }));
+ selected.getView().changed();
+}
From 374a0f9dd3614603ad4905dcab4991efcd2d3f50 Mon Sep 17 00:00:00 2001
From: christof-wittreich
Date: Wed, 10 Jan 2024 10:19:48 -0500
Subject: [PATCH 2/8] Custom palette issues
---
web/js/containers/tour.js | 6 ++++++
web/js/map/layerbuilder.js | 2 +-
web/js/modules/palettes/selectors.js | 5 +++--
3 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/web/js/containers/tour.js b/web/js/containers/tour.js
index 6416421a08..4d34365823 100644
--- a/web/js/containers/tour.js
+++ b/web/js/containers/tour.js
@@ -546,6 +546,12 @@ const mapDispatchToProps = (dispatch) => ({
promises.push(promiseImageryForTour(layers, parameters.t1, 'activeB'));
}
}
+ preloadPalettes(layers, {}, false).then((obj) => {
+ dispatch({
+ type: BULK_PALETTE_RENDERING_SUCCESS,
+ rendered: obj.rendered,
+ });
+ });
await Promise.all(promises);
},
startTour: () => {
diff --git a/web/js/map/layerbuilder.js b/web/js/map/layerbuilder.js
index a180ea222b..cb330706d7 100644
--- a/web/js/map/layerbuilder.js
+++ b/web/js/map/layerbuilder.js
@@ -115,7 +115,7 @@ export default function mapLayerBuilder(config, cache, store) {
if (isVectorStyleActive(def.id, activeGroupStr, state)) {
style = getVectorStyleKeys(def.id, undefined, state);
}
- if (options.style) {
+ if (def.custom && options.style) {
style = options.style;
}
return [layerId, projId, date, style, activeGroupStr].join(':');
diff --git a/web/js/modules/palettes/selectors.js b/web/js/modules/palettes/selectors.js
index 08d317456b..48362bee5b 100644
--- a/web/js/modules/palettes/selectors.js
+++ b/web/js/modules/palettes/selectors.js
@@ -350,15 +350,16 @@ export function getKey(layerId, groupStr, state) {
return '';
}
const def = getPalette(layerId, undefined, groupStr, state);
+ const { values } = getPalette(layerId, 0, groupStr, state).entries;
const keys = [];
if (def.custom) {
keys.push(`palette=${def.custom}`);
}
if (def.min) {
- keys.push(`min=${def.min}`);
+ keys.push(`min=${getMinValue(values[def.min])}`);
}
if (def.max) {
- keys.push(`max=${def.max}`);
+ keys.push(`max=${getMinValue(values[def.max])}`);
}
if (def.squash) {
keys.push('squash');
From ddded2f58be458862b8b4c2ad85d98f149baca10 Mon Sep 17 00:00:00 2001
From: christof-wittreich
Date: Tue, 16 Jan 2024 15:03:08 -0500
Subject: [PATCH 3/8] Custom palette implemented
---
web/js/containers/tour.js | 43 ++++++++++++++++++----------
web/js/map/layerbuilder.js | 11 +++++++
web/js/modules/map/util.js | 1 -
web/js/modules/palettes/constants.js | 1 +
web/js/modules/palettes/reducers.js | 6 ++++
web/js/modules/palettes/util.js | 2 ++
6 files changed, 48 insertions(+), 16 deletions(-)
diff --git a/web/js/containers/tour.js b/web/js/containers/tour.js
index 4d34365823..9e072b6ae6 100644
--- a/web/js/containers/tour.js
+++ b/web/js/containers/tour.js
@@ -24,7 +24,10 @@ import {
import {
clearCustoms,
} from '../modules/palettes/actions';
-import { BULK_PALETTE_RENDERING_SUCCESS } from '../modules/palettes/constants';
+import {
+ BULK_PALETTE_RENDERING_SUCCESS,
+ BULK_PALETTE_PRELOADING_SUCCESS,
+} from '../modules/palettes/constants';
import { stop as stopAnimation } from '../modules/animation/actions';
import { onClose as closeModal } from '../modules/modal/actions';
import { LOCATION_POP_ACTION } from '../redux-location-state-customs';
@@ -158,13 +161,6 @@ class Tour extends React.Component {
this.fetchMetadata(currentStory, 0);
const storyStep = currentStory.steps[0];
const transitionParam = getTransitionAttr(storyStep.transition);
- currentStory.steps.forEach((step) => {
- preProcessStepLink(
- `${step.stepLink}&tr=${currentStoryId}${transitionParam}${kioskParam}&em=${isEmbedModeActive}`,
- config,
- promiseImageryForTour,
- );
- });
processStepLink(
currentStoryId,
1,
@@ -173,6 +169,13 @@ class Tour extends React.Component {
config,
renderedPalettes,
);
+ currentStory.steps.forEach((step) => {
+ preProcessStepLink(
+ `${step.stepLink}&tr=${currentStoryId}${transitionParam}${kioskParam}&em=${isEmbedModeActive}`,
+ config,
+ promiseImageryForTour,
+ );
+ });
}
fetchMetadata(currentStory, stepIndex) {
@@ -524,6 +527,10 @@ const mapDispatchToProps = (dispatch) => ({
type: BULK_PALETTE_RENDERING_SUCCESS,
rendered: obj.rendered,
});
+ dispatch({
+ type: BULK_PALETTE_PRELOADING_SUCCESS,
+ tourStoryPalettes: obj.rendered,
+ });
dispatch({ type: LOCATION_POP_ACTION, payload: location });
});
} else {
@@ -535,24 +542,30 @@ const mapDispatchToProps = (dispatch) => ({
const parameters = util.fromQueryString(search);
let layers = [];
const promises = [];
+ const temp = [];
if (parameters.l) {
layers = layersParse12(parameters.l, config);
layers = uniqBy(layers, 'id');
- promises.push(promiseImageryForTour(layers, parameters.t));
+ temp.push({ layers, dateString: parameters.t });
if (parameters.l1) {
layers = layersParse12(parameters.l1, config);
layers = uniqBy(layers, 'id');
- promises.push(promiseImageryForTour(layers, parameters.t1, 'activeB'));
+ temp.push({ layers, dateString: parameters.t1, activeString: 'activeB' });
}
}
- preloadPalettes(layers, {}, false).then((obj) => {
- dispatch({
- type: BULK_PALETTE_RENDERING_SUCCESS,
- rendered: obj.rendered,
+ console.log(layers);
+ preloadPalettes(layers, {}, false).then(async (obj) => {
+ console.log(obj);
+ await dispatch({
+ type: BULK_PALETTE_PRELOADING_SUCCESS,
+ tourStoryPalettes: obj.rendered,
+ });
+ temp.forEach((set) => {
+ promises.push(promiseImageryForTour(set.layers, set.dateString, set.activeString));
});
+ await Promise.all(promises);
});
- await Promise.all(promises);
},
startTour: () => {
dispatch(startTourAction());
diff --git a/web/js/map/layerbuilder.js b/web/js/map/layerbuilder.js
index cb330706d7..a4f6cfb499 100644
--- a/web/js/map/layerbuilder.js
+++ b/web/js/map/layerbuilder.js
@@ -41,6 +41,9 @@ import {
applyStyle,
} from '../modules/vector-styles/selectors';
import { nearestInterval } from '../modules/layers/util';
+import {
+ lookup as createLookup,
+} from '../modules/palettes/util';
import {
LEFT_WING_EXTENT, RIGHT_WING_EXTENT, LEFT_WING_ORIGIN, RIGHT_WING_ORIGIN, CENTER_MAP_ORIGIN,
} from '../modules/map/constants';
@@ -377,9 +380,17 @@ export default function mapLayerBuilder(config, cache, store) {
wrapX: false,
style: typeof style === 'undefined' ? 'default' : style,
};
+ console.log(def.id, def, options, state.palettes);
if (isPaletteActive(id, options.group, state)) {
const lookup = getPaletteLookup(id, options.group, state);
+ console.log(def.id, lookup);
+ sourceOptions.tileClass = lookupFactory(lookup, sourceOptions);
+ } else if (def.palette && def.custom && state.palettes.tourStoryPalettes && state.palettes.tourStoryPalettes[def.palette.id]) {
+ const lookup = createLookup(state.palettes.tourStoryPalettes[def.palette.id].maps[0].entries, state.palettes.custom[def.custom[0]]);
+ console.log(def.id, lookup);
sourceOptions.tileClass = lookupFactory(lookup, sourceOptions);
+ // Lookup is now working, so custom palette is properly preloaded
+ // Still TODO: fix min & max, still not working when preloading
}
const tileSource = new OlSourceWMTS(sourceOptions);
diff --git a/web/js/modules/map/util.js b/web/js/modules/map/util.js
index 5433169af2..e51932bee7 100644
--- a/web/js/modules/map/util.js
+++ b/web/js/modules/map/util.js
@@ -345,5 +345,4 @@ export async function promiseImageryForTour(state, layers, dateString, activeStr
const layerGroup = cache.getItem(key) || await createLayer(layer, options);
return promiseLayerGroup(layerGroup, selected);
}));
- selected.getView().changed();
}
diff --git a/web/js/modules/palettes/constants.js b/web/js/modules/palettes/constants.js
index a843678b0f..0fed270830 100644
--- a/web/js/modules/palettes/constants.js
+++ b/web/js/modules/palettes/constants.js
@@ -10,6 +10,7 @@ export const CLEAR_CUSTOMS = 'PALETTES/CLEAR_CUSTOMS';
export const SET_CUSTOM = 'PALETTES/SET_CUSTOM';
export const LOADED_CUSTOM_PALETTES = 'PALETTES/LOADED_CUSTOM_PALETTES';
export const BULK_PALETTE_RENDERING_SUCCESS = 'PALETTES/BULK_PALETTE_RENDERING_SUCCESS';
+export const BULK_PALETTE_PRELOADING_SUCCESS = 'PALETTES/BULK_PALETTE_PRELOADING_SUCCESS';
export const PALETTE_STRINGS_PERMALINK_ARRAY = [
'palette',
diff --git a/web/js/modules/palettes/reducers.js b/web/js/modules/palettes/reducers.js
index 8bd01dc404..1bc7f31ade 100644
--- a/web/js/modules/palettes/reducers.js
+++ b/web/js/modules/palettes/reducers.js
@@ -12,6 +12,7 @@ import {
SET_THRESHOLD_RANGE_AND_SQUASH,
LOADED_CUSTOM_PALETTES,
BULK_PALETTE_RENDERING_SUCCESS,
+ BULK_PALETTE_PRELOADING_SUCCESS,
CLEAR_CUSTOM,
SET_DISABLED_CLASSIFICATION,
} from './constants';
@@ -23,6 +24,7 @@ export const defaultPaletteState = {
active: {},
activeB: {},
isLoading: {},
+ tourStoryPalettes: {},
};
export function getInitialPaletteState(config) {
const rendered = lodashGet(config, 'palettes.rendered') || {};
@@ -46,6 +48,10 @@ export function paletteReducer(state = defaultPaletteState, action) {
return update(state, {
rendered: { $merge: action.rendered || {} },
});
+ case BULK_PALETTE_PRELOADING_SUCCESS:
+ return update(state, {
+ tourStoryPalettes: { $merge: action.tourStoryPalettes || {} },
+ });
case REQUEST_PALETTE_SUCCESS: {
const isLoading = update(state.isLoading, { $unset: [action.id] });
return lodashAssign({}, state, {
diff --git a/web/js/modules/palettes/util.js b/web/js/modules/palettes/util.js
index 091ac1588a..2216814793 100644
--- a/web/js/modules/palettes/util.js
+++ b/web/js/modules/palettes/util.js
@@ -375,6 +375,7 @@ export function loadPalettes(permlinkState, state) {
}
lodashEach(stateArray, (stateObj) => {
lodashEach(state.layers[stateObj.groupStr].layers, (layerDef) => {
+ console.log(layerDef.id, layerDef);
if (layerDef.palette) {
const layerId = layerDef.id;
const min = [];
@@ -529,6 +530,7 @@ export function preloadPalettes(layersArray, renderedPalettes, customLoaded) {
&& !loading[obj.palette.id]
) {
const paletteId = obj.palette.id;
+ console.log(paletteId, obj);
const location = `config/palettes/${paletteId}.json`;
const promise = util.fetch(location, 'application/json');
loading[paletteId] = true;
From 9e017d13fb6968244d2ece95309ca7cb79d975ee Mon Sep 17 00:00:00 2001
From: christof-wittreich
Date: Tue, 16 Jan 2024 18:00:36 -0500
Subject: [PATCH 4/8] Preloaded tour story imagery
---
web/js/containers/tour.js | 13 +++++++------
web/js/map/layerbuilder.js | 14 --------------
web/js/modules/palettes/util.js | 2 --
3 files changed, 7 insertions(+), 22 deletions(-)
diff --git a/web/js/containers/tour.js b/web/js/containers/tour.js
index 9e072b6ae6..fb0b38b8c1 100644
--- a/web/js/containers/tour.js
+++ b/web/js/containers/tour.js
@@ -541,22 +541,23 @@ const mapDispatchToProps = (dispatch) => ({
search = search.split('/?').pop();
const parameters = util.fromQueryString(search);
let layers = [];
+ let layers2 = [];
const promises = [];
const temp = [];
if (parameters.l) {
layers = layersParse12(parameters.l, config);
layers = uniqBy(layers, 'id');
+ layers = layers.filter((layer) => !layer.custom && !layer.disabled);
temp.push({ layers, dateString: parameters.t });
if (parameters.l1) {
- layers = layersParse12(parameters.l1, config);
- layers = uniqBy(layers, 'id');
- temp.push({ layers, dateString: parameters.t1, activeString: 'activeB' });
+ layers2 = layersParse12(parameters.l1, config);
+ layers2 = uniqBy(layers2, 'id');
+ layers2 = layers2.filter((layer) => !layer.custom && !layer.disabled);
+ temp.push({ layers: layers2, dateString: parameters.t1, activeString: 'activeB' });
}
}
- console.log(layers);
- preloadPalettes(layers, {}, false).then(async (obj) => {
- console.log(obj);
+ preloadPalettes([...layers, ...layers2], {}, false).then(async (obj) => {
await dispatch({
type: BULK_PALETTE_PRELOADING_SUCCESS,
tourStoryPalettes: obj.rendered,
diff --git a/web/js/map/layerbuilder.js b/web/js/map/layerbuilder.js
index a4f6cfb499..48ce4836b2 100644
--- a/web/js/map/layerbuilder.js
+++ b/web/js/map/layerbuilder.js
@@ -41,9 +41,6 @@ import {
applyStyle,
} from '../modules/vector-styles/selectors';
import { nearestInterval } from '../modules/layers/util';
-import {
- lookup as createLookup,
-} from '../modules/palettes/util';
import {
LEFT_WING_EXTENT, RIGHT_WING_EXTENT, LEFT_WING_ORIGIN, RIGHT_WING_ORIGIN, CENTER_MAP_ORIGIN,
} from '../modules/map/constants';
@@ -118,9 +115,6 @@ export default function mapLayerBuilder(config, cache, store) {
if (isVectorStyleActive(def.id, activeGroupStr, state)) {
style = getVectorStyleKeys(def.id, undefined, state);
}
- if (def.custom && options.style) {
- style = options.style;
- }
return [layerId, projId, date, style, activeGroupStr].join(':');
};
@@ -380,17 +374,9 @@ export default function mapLayerBuilder(config, cache, store) {
wrapX: false,
style: typeof style === 'undefined' ? 'default' : style,
};
- console.log(def.id, def, options, state.palettes);
if (isPaletteActive(id, options.group, state)) {
const lookup = getPaletteLookup(id, options.group, state);
- console.log(def.id, lookup);
- sourceOptions.tileClass = lookupFactory(lookup, sourceOptions);
- } else if (def.palette && def.custom && state.palettes.tourStoryPalettes && state.palettes.tourStoryPalettes[def.palette.id]) {
- const lookup = createLookup(state.palettes.tourStoryPalettes[def.palette.id].maps[0].entries, state.palettes.custom[def.custom[0]]);
- console.log(def.id, lookup);
sourceOptions.tileClass = lookupFactory(lookup, sourceOptions);
- // Lookup is now working, so custom palette is properly preloaded
- // Still TODO: fix min & max, still not working when preloading
}
const tileSource = new OlSourceWMTS(sourceOptions);
diff --git a/web/js/modules/palettes/util.js b/web/js/modules/palettes/util.js
index 2216814793..091ac1588a 100644
--- a/web/js/modules/palettes/util.js
+++ b/web/js/modules/palettes/util.js
@@ -375,7 +375,6 @@ export function loadPalettes(permlinkState, state) {
}
lodashEach(stateArray, (stateObj) => {
lodashEach(state.layers[stateObj.groupStr].layers, (layerDef) => {
- console.log(layerDef.id, layerDef);
if (layerDef.palette) {
const layerId = layerDef.id;
const min = [];
@@ -530,7 +529,6 @@ export function preloadPalettes(layersArray, renderedPalettes, customLoaded) {
&& !loading[obj.palette.id]
) {
const paletteId = obj.palette.id;
- console.log(paletteId, obj);
const location = `config/palettes/${paletteId}.json`;
const promise = util.fetch(location, 'application/json');
loading[paletteId] = true;
From 2379936ec1865c4f9a5fe0be5ac838d8c6eb51e6 Mon Sep 17 00:00:00 2001
From: christof-wittreich
Date: Wed, 17 Jan 2024 12:16:18 -0500
Subject: [PATCH 5/8] Changed variable names
---
web/js/containers/tour.js | 28 ++++++++++++++--------------
1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/web/js/containers/tour.js b/web/js/containers/tour.js
index fb0b38b8c1..c8174da5af 100644
--- a/web/js/containers/tour.js
+++ b/web/js/containers/tour.js
@@ -540,29 +540,29 @@ const mapDispatchToProps = (dispatch) => ({
preProcessStepLink: async (search, config, promiseImageryForTour) => {
search = search.split('/?').pop();
const parameters = util.fromQueryString(search);
- let layers = [];
- let layers2 = [];
- const promises = [];
- const temp = [];
+ let layersA = [];
+ let layersB = [];
+ const promisesParams = [];
if (parameters.l) {
- layers = layersParse12(parameters.l, config);
- layers = uniqBy(layers, 'id');
- layers = layers.filter((layer) => !layer.custom && !layer.disabled);
- temp.push({ layers, dateString: parameters.t });
+ layersA = layersParse12(parameters.l, config);
+ layersA = uniqBy(layersA, 'id');
+ layersA = layersA.filter((layer) => !layer.custom && !layer.disabled);
+ promisesParams.push({ layersA, dateString: parameters.t });
if (parameters.l1) {
- layers2 = layersParse12(parameters.l1, config);
- layers2 = uniqBy(layers2, 'id');
- layers2 = layers2.filter((layer) => !layer.custom && !layer.disabled);
- temp.push({ layers: layers2, dateString: parameters.t1, activeString: 'activeB' });
+ layersB = layersParse12(parameters.l1, config);
+ layersB = uniqBy(layersB, 'id');
+ layersB = layersB.filter((layer) => !layer.custom && !layer.disabled);
+ promisesParams.push({ layers: layersB, dateString: parameters.t1, activeString: 'activeB' });
}
}
- preloadPalettes([...layers, ...layers2], {}, false).then(async (obj) => {
+ preloadPalettes([...layersA, ...layersB], {}, false).then(async (obj) => {
await dispatch({
type: BULK_PALETTE_PRELOADING_SUCCESS,
tourStoryPalettes: obj.rendered,
});
- temp.forEach((set) => {
+ const promises = [];
+ promisesParams.forEach((set) => {
promises.push(promiseImageryForTour(set.layers, set.dateString, set.activeString));
});
await Promise.all(promises);
From f504c406465bdde7189f4bb701efc7ed14494e6e Mon Sep 17 00:00:00 2001
From: christof-wittreich
Date: Wed, 17 Jan 2024 15:16:34 -0500
Subject: [PATCH 6/8] Refactored
---
web/js/containers/tour.js | 24 ++++++++++++++----------
1 file changed, 14 insertions(+), 10 deletions(-)
diff --git a/web/js/containers/tour.js b/web/js/containers/tour.js
index c8174da5af..888c1cbf7c 100644
--- a/web/js/containers/tour.js
+++ b/web/js/containers/tour.js
@@ -55,6 +55,14 @@ const getTransitionAttr = function(transition) {
return '';
};
+const prepareLayersList = function(layersString, config) {
+ let layers;
+ layers = layersParse12(layersString, config);
+ layers = uniqBy(layers, 'id');
+ layers = layers.filter((layer) => !layer.custom && !layer.disabled);
+ return layers;
+};
+
class Tour extends React.Component {
constructor(props) {
super(props);
@@ -545,16 +553,12 @@ const mapDispatchToProps = (dispatch) => ({
const promisesParams = [];
if (parameters.l) {
- layersA = layersParse12(parameters.l, config);
- layersA = uniqBy(layersA, 'id');
- layersA = layersA.filter((layer) => !layer.custom && !layer.disabled);
- promisesParams.push({ layersA, dateString: parameters.t });
- if (parameters.l1) {
- layersB = layersParse12(parameters.l1, config);
- layersB = uniqBy(layersB, 'id');
- layersB = layersB.filter((layer) => !layer.custom && !layer.disabled);
- promisesParams.push({ layers: layersB, dateString: parameters.t1, activeString: 'activeB' });
- }
+ layersA = prepareLayersList(parameters.l, config);
+ promisesParams.push({ layers: layersA, dateString: parameters.t });
+ }
+ if (parameters.l1) {
+ layersB = prepareLayersList(parameters.l1, config);
+ promisesParams.push({ layers: layersB, dateString: parameters.t1, activeString: 'activeB' });
}
preloadPalettes([...layersA, ...layersB], {}, false).then(async (obj) => {
await dispatch({
From c192db2b7fe97dcc4f781f4f884c19e6b3e12c66 Mon Sep 17 00:00:00 2001
From: christof-wittreich
Date: Thu, 18 Jan 2024 11:29:44 -0500
Subject: [PATCH 7/8] Preload only 1 step ahead
---
web/js/containers/tour.js | 25 +++++++++++++------------
web/js/modules/map/util.js | 2 +-
2 files changed, 14 insertions(+), 13 deletions(-)
diff --git a/web/js/containers/tour.js b/web/js/containers/tour.js
index 888c1cbf7c..42c5d20022 100644
--- a/web/js/containers/tour.js
+++ b/web/js/containers/tour.js
@@ -177,13 +177,11 @@ class Tour extends React.Component {
config,
renderedPalettes,
);
- currentStory.steps.forEach((step) => {
- preProcessStepLink(
- `${step.stepLink}&tr=${currentStoryId}${transitionParam}${kioskParam}&em=${isEmbedModeActive}`,
- config,
- promiseImageryForTour,
- );
- });
+ preProcessStepLink(
+ `${currentStory.steps[1].stepLink}&tr=${currentStoryId}${transitionParam}${kioskParam}&em=${isEmbedModeActive}`,
+ config,
+ promiseImageryForTour,
+ );
}
fetchMetadata(currentStory, stepIndex) {
@@ -262,7 +260,7 @@ class Tour extends React.Component {
currentStoryId,
} = this.state;
const {
- config, renderedPalettes, processStepLink, isKioskModeActive, activeTab, changeTab, isEmbedModeActive,
+ config, renderedPalettes, processStepLink, isKioskModeActive, activeTab, changeTab, isEmbedModeActive, preProcessStepLink, promiseImageryForTour,
} = this.props;
const kioskParam = this.getKioskParam(isKioskModeActive);
@@ -283,6 +281,13 @@ class Tour extends React.Component {
config,
renderedPalettes,
);
+ if (currentStep + 2 <= totalSteps) {
+ preProcessStepLink(
+ `${currentStory.steps[newStep].stepLink}&tr=${currentStoryId}${transitionParam}${kioskParam}&em=${isEmbedModeActive}`,
+ config,
+ promiseImageryForTour,
+ );
+ }
}
if (currentStep + 1 === totalSteps + 1) {
this.toggleModalInProgress(e);
@@ -535,10 +540,6 @@ const mapDispatchToProps = (dispatch) => ({
type: BULK_PALETTE_RENDERING_SUCCESS,
rendered: obj.rendered,
});
- dispatch({
- type: BULK_PALETTE_PRELOADING_SUCCESS,
- tourStoryPalettes: obj.rendered,
- });
dispatch({ type: LOCATION_POP_ACTION, payload: location });
});
} else {
diff --git a/web/js/modules/map/util.js b/web/js/modules/map/util.js
index e51932bee7..c4bd264e1b 100644
--- a/web/js/modules/map/util.js
+++ b/web/js/modules/map/util.js
@@ -323,7 +323,7 @@ export async function promiseImageryForTour(state, layers, dateString, activeStr
if (layer.type === 'granule' || layer.type === 'ttiler') {
return Promise.resolve();
}
- const options = { date, group: activeString };
+ const options = { date, group: activeString || 'active' };
const keys = [];
if (layer.custom) {
keys.push(`palette=${layer.custom}`);
From b194007407c0f522a3a5e55c917c80ed350b23b1 Mon Sep 17 00:00:00 2001
From: christof-wittreich
Date: Fri, 26 Jan 2024 13:51:07 -0500
Subject: [PATCH 8/8] Squashed commit of the following:
commit 8e1c50662e36ce4509454029ae2610bdcdb9bd2d
Author: Ryan Weiler
Date: Fri Jan 26 07:53:29 2024 -0500
dependency updates 1-19-24 (#4948)
commit f208caf4b2738878abdc9e7cad16c7aaa08506ee
Author: Ryan Weiler
Date: Thu Jan 25 12:28:20 2024 -0500
adjusting static map logic for EIC (#4949)
commit adfce432e228ba42889be9f5e944d060141c811e
Author: Ryan Weiler
Date: Thu Jan 25 11:30:51 2024 -0500
Adding conditionals for E2E test notifications (#4950)
* refactoring e2e tests
* update animation-test
* update layer-picker-mobile-test
* fix about modal test
commit eef0628a73a177e742a2dfd2a7051857fb7fab4b
Merge: cffaddb89 f00bd5945
Author: Tom Cariello
Date: Wed Jan 17 11:55:03 2024 -0500
Merge pull request #4938 from nasa-gibs/main
Main to Develop
commit f00bd5945c63c062136c6d383f67b4d7840c5d08
Merge: c28475028 cffaddb89
Author: Tom Cariello
Date: Wed Jan 17 11:54:40 2024 -0500
Merge branch 'develop' into main
commit c28475028d4db496fa5f496077be36cf63863e0b
Merge: dc8a02063 f9f78fc81
Author: Tom Cariello
Date: Wed Jan 17 11:51:09 2024 -0500
Merge pull request #4937 from nasa-gibs/release
Release to Main
commit cffaddb89a09aaae0655e0bb4f60419463f4914c
Author: Ryan Weiler
Date: Wed Jan 17 10:48:33 2024 -0500
WV-2957 Code Coverage Documentation (#4936)
* e2e code coverage test documentation
* remove nyc ouput
commit f9f78fc817c0e4dead3522db7ac5ac82918a46d1
Merge: 0f0c1b0e7 16bc2db6c
Author: Tom Cariello
Date: Tue Jan 16 13:57:35 2024 -0500
Merge pull request #4933 from nasa-gibs/UAT-v4.24.0
UAT v4.24.0
commit 16bc2db6c990852d2ba618c9127e652adbd094e8
Author: Tom Cariello
Date: Tue Jan 16 13:36:01 2024 -0500
v4.24.0
commit a633c3affd360e4b4c4ee563046014207d7b9189
Author: minniewong
Date: Tue Jan 16 10:40:38 2024 -0500
Further updates to steps (#4932)
commit d7c4ddd8eb83e07494704a39220bbd0006710947
Author: minniewong
Date: Tue Jan 16 10:21:35 2024 -0500
WV-3013: Fix dois and short names for AMSR-E and AMSR2 NSIDC layers (#4931)
* Fix dois and short names
* Update AU_OCEAN doi to working link
commit 6e749a1bb43688f34f38229ba920b956bc100027
Author: Ryan Weiler
Date: Fri Jan 12 13:28:06 2024 -0500
update dependencies 1-12-24 (#4930)
commit 3719d4044bfa0784cdad87e03eb7ac30542e4862
Author: minniewong
Date: Fri Jan 12 12:19:32 2024 -0500
WW-2655: OPERA Surface Water Extent story (#4921)
* Initial steps
* update story steps
* hide surface water extent story in tour story box
* update story text
* Fix typos and add correct link for Step 5
---------
Co-authored-by: ryanweiler92
commit 7485dfee4fa7d99031a7f954f297bd8895f903e6
Merge: d355e56ac 7be844e99
Author: Ryan Weiler
Date: Fri Jan 12 12:08:08 2024 -0500
Merge pull request #4917 from nasa-gibs/wv-gitc-temp-measurement-settings-layers
WV GITC Fix for measurement settings layers & handle errors when adjustingStart dates on load
commit 7be844e99da394eb0f1433f24bcf58d54d360dbe
Author: ryanweiler92
Date: Wed Jan 10 12:05:33 2024 -0500
handle adjusting startDate errors
commit d355e56ac0992472f07f375fa514ada300532bb5
Merge: 7a82ea2b9 dc8a02063
Author: Ryan Weiler
Date: Mon Jan 8 16:05:57 2024 -0500
Merge pull request #4920 from nasa-gibs/main
Main to Develop v4.23.1
commit dc8a02063cd6e13405f48a2bfc9ad9dc370275f1
Merge: bc7625a45 0f0c1b0e7
Author: Ryan Weiler
Date: Mon Jan 8 15:29:48 2024 -0500
Merge pull request #4919 from nasa-gibs/release
Release to Main v4.23.1
commit 7a82ea2b943cdfb44eb96299f128106ed53d3df7
Author: Patrick Moulden <4834892+PatchesMaps@users.noreply.github.com>
Date: Mon Jan 8 13:57:54 2024 -0500
Dependency Updates 01-05-2024 (#4918)
commit effb47de024064075b1f31e6c9da9850f31b2ea0
Author: ryanweiler92
Date: Mon Jan 8 12:37:45 2024 -0500
check for layers in settings array that dont exist in config
commit 0f0c1b0e7a608d26a1ff2ec442b5dec514353f96
Merge: 94c346580 b0a36ceca
Author: Ryan Weiler
Date: Mon Jan 8 11:59:57 2024 -0500
Merge pull request #4916 from nasa-gibs/UAT-v4.23.1
UAT-v4.23.1 to Release
commit b0a36cecaebc0aa3d7f5a39a040204b782638df0
Author: ryanweiler92
Date: Mon Jan 8 11:58:28 2024 -0500
v4.23.1
commit b9a6ba0a936db9809d988d7e5361fccab86d1a6f
Author: minniewong
Date: Mon Jan 8 10:33:28 2024 -0500
Fixes for typos, extra spaces, missing parentheses (#4914)
* Fixes for typos, extra spaces, missing parentheses
* Update VIIRS_SNPP_Ice_Surface_Temp_Night.md
commit dc1a710337404ab210996ec8ad662c8df25c9196
Author: Ryan Weiler
Date: Mon Jan 8 09:47:15 2024 -0500
update axios (#4915)
commit b290693126b864b8ceea2f5065aeb7e062844feb
Merge: 5a86501be bc7625a45
Author: Ryan Weiler
Date: Wed Jan 3 14:56:07 2024 -0500
Merge pull request #4908 from nasa-gibs/main
Main to Develop v4.23.0
commit bc7625a4572acda67e0839a0cec7c84625379b99
Merge: dee0b7241 94c346580
Author: Ryan Weiler
Date: Wed Jan 3 14:52:23 2024 -0500
Merge pull request #4907 from nasa-gibs/release
Release to Main v4.23.0
commit 94c3465800dac6117cae38d6c3a47701cbe86a1a
Merge: 4a3e814fc 68b503a56
Author: Ryan Weiler
Date: Wed Jan 3 13:12:34 2024 -0500
Merge pull request #4906 from nasa-gibs/UAT-v4.23.0
UAT v4.23.0 to Release
commit 68b503a56d985a67f69a0e8be09da13658560051
Author: ryanweiler92
Date: Wed Jan 3 13:09:59 2024 -0500
v4.23.0
commit 5a86501beaef66e65b594102714015b353cdda10
Author: minniewong
Date: Wed Jan 3 12:18:37 2024 -0500
update SMAP dois for new versions (#4905)
commit 97fe1c0644a03ebc71bdd254673827ee6b499fc2
Author: Ryan Weiler
Date: Tue Jan 2 16:02:58 2024 -0500
WV-2985: Removing Date for EIC Static Map Mode (#4904)
* add resolutions section to package.json for follow-redirects version 1.15.4
* hide date during eic static map
commit 0112037dd2d0f8c9ed62e84fbafc7859057f4ab6
Author: Ryan Weiler
Date: Tue Jan 2 14:45:53 2024 -0500
WV-2981: Dynamically update subdomains for collection updates feature for GITC deployments (#4886)
* use correct subdomain in collection updates for gitc deployments
* update layer source lookup to use regex for subdomain resolver
commit ecb0ebe5edbe7bbf6235dee48af529c1d8dbe03e
Author: Ryan Weiler
Date: Tue Jan 2 10:20:43 2024 -0500
add resolutions section to package.json for follow-redirects version 1.15.4 (#4903)
commit e8c5124341c9416ef0ca9ddfc71fd8f0d685839c
Author: christof-wittreich
Date: Fri Dec 29 10:07:41 2023 -0600
dependabot updates 12-29-23 (#4902)
commit 61b613226e98f5a6d4a254db0ec85a5f5a896db9
Author: minniewong
Date: Thu Dec 28 10:16:35 2023 -0500
WV-2960: remove deployment link (#4891)
* Removed deployment page and link; updated other misc
* Update license.md
commit e5aa6c5c9fe41d47b476faf90a067651102b92bb
Author: minniewong
Date: Tue Dec 26 15:31:04 2023 -0500
Update broken links (#4890)
* Update broken links
* Update MODIS_Aqua_L3_SST_MidIR_4km_Night_8Day.md
commit 0948ef8dbc759d5fef5963c7b1744b21f2f763f5
Author: minniewong
Date: Tue Dec 26 14:48:59 2023 -0500
WV-2571: Update copyright info to 2024 (#4889)
* Update copyright info to 2024
* Update LICENSE.md
commit e896b360cac6e2d6ea18d4275b44fc44be6821ba
Author: Patrick Moulden <4834892+PatchesMaps@users.noreply.github.com>
Date: Fri Dec 22 16:49:06 2023 -0500
fix unrelated zots (#4885)
commit 1d3845686c23b46c845bc086e41d8cece04f2a2c
Author: Patrick Moulden <4834892+PatchesMaps@users.noreply.github.com>
Date: Fri Dec 22 16:48:49 2023 -0500
update local state with prop (#4884)
commit 37178cd2625f1922686c6fa4219697dfc064b28a
Author: Patrick Moulden <4834892+PatchesMaps@users.noreply.github.com>
Date: Fri Dec 22 16:48:34 2023 -0500
Wv 2977 comparison available imagery (#4887)
* fix comparison mode
* lint fix
commit 268e7c49c0838ce49172ec3d95c9ebca0bace331
Author: minniewong
Date: Fri Dec 22 16:42:57 2023 -0500
WV-2975: Add 4 TRMM/TMI and AMSRE LPRM soil moisture layers (#4888)
* Add 4 LPRM and TMI Soil Moisture layers
* Add LPRM descriptions
commit e53ac04614243bfc2a0b16046c3e500074c13863
Author: minniewong
Date: Fri Dec 22 16:04:22 2023 -0500
Update HLS Sentinel band combo; change title of EIC NOAA-20 fires (#4879)
commit f77d427aa0b524f6c8f14645aa0b01354bf8c74a
Author: Ryan Weiler
Date: Fri Dec 22 12:25:22 2023 -0500
dependency updates 12-22-23 (#4883)
commit d5784255e72611e4aa275d623c8bab0582c2d04d
Merge: 8e21d6254 dee0b7241
Author: Tom Cariello
Date: Tue Dec 19 10:47:28 2023 -0500
Merge pull request #4877 from nasa-gibs/main
Main to Develop
commit dee0b72412b2c054d0a72d27529cb0c705422255
Merge: 54d54198f 4a3e814fc
Author: Tom Cariello
Date: Tue Dec 19 10:44:40 2023 -0500
Merge pull request #4876 from nasa-gibs/release
Release to main
commit 4a3e814fcd54501e2999786d630571e6f6e0dbaa
Merge: 419c90bc4 1efa98ba5
Author: Tom Cariello
Date: Tue Dec 19 08:44:30 2023 -0500
Merge pull request #4875 from nasa-gibs/UAT-v4.22.0
UAT v4.22.0
commit 1efa98ba5988c057a3a280cb883df446f830b5f5
Author: Thomas Cariello
Date: Tue Dec 19 08:42:42 2023 -0500
v4.22.0
commit 8e21d625475fcfd62da933067933bef730a43406
Author: Patrick Moulden <4834892+PatchesMaps@users.noreply.github.com>
Date: Mon Dec 18 21:19:59 2023 -0500
Wv 2749 locate ddv imagery (#4614)
* first pass at imagery search
* lint fixes
* add ImagerySearch to other layers
* lint fixes
* look for imagery closest to selected date
* lint fix
* sort dates and ensure closest img dates shown
* tweak styles
* remove true color presets
* CR changes
* lint fixes
* css fix
* lazy-load list for imagery dates
* lint fixes
* load dates seperately
* remove old method
* iteration on date lazy loading
* remove trailing spaces
* underzoom zot
* imagery search enhancements
* Zots and alerts
* lint fixes
* "destroy is not a function" fix
* make zot lighter
* resolve e2e zot test
* modal
* spacing fixes
* tweak granule params
* validate entries
* zero out datetime
* data to imagery
* text changes
* requested changes
* shorten notices and enable opera layer
* change how we get the concept id
* style adjustments
* update notice on date change
* differentiate lazy-load list
* remove notice after being dismissed once
* only check visible layers
* add divider
* lint fix
* Zoom alert modal
* son't show granule alert if zoom alert is showing
* clamp max extent and improved error handling
* lint fixes
* check for granules on visibility change
* fix underzoom issue
* structure changes
commit acbbfcc1e72618d0672b67e4a1cea3ad0d2e9725
Author: christof-wittreich
Date: Fri Dec 15 08:23:13 2023 -0600
dependabot updates 12-15-23 (#4874)
---
.vscode/settings.json | 2 +-
LICENSE.md | 4 +-
README.md | 1 -
config/default/common/brand/about/license.md | 6 +-
.../amsr2/AMSRU2_Cloud_Liquid_Water_Day.md | 2 +-
.../amsr2/AMSRU2_Cloud_Liquid_Water_Night.md | 2 +-
.../amsr2/AMSRU2_Columnar_Water_Vapor_Day.md | 2 +-
.../AMSRU2_Columnar_Water_Vapor_Night.md | 2 +-
.../amsr2/AMSRU2_Surface_Precipitation_Day.md | 2 +-
.../AMSRU2_Surface_Precipitation_Night.md | 2 +-
.../AMSRU2_Total_Precipitable_Water_Day.md | 2 +-
.../AMSRU2_Total_Precipitable_Water_Night.md | 2 +-
.../layers/amsr2/AMSRU2_Wind_Speed_Day.md | 2 +-
.../layers/amsr2/AMSRU2_Wind_Speed_Night.md | 2 +-
.../amsre/AMSRE_Columnar_Water_Vapor_Day.md | 2 +-
.../amsre/AMSRE_Columnar_Water_Vapor_Night.md | 2 +-
.../AMSRE_Surface_Precipitation_Rate_Day.md | 2 +-
.../AMSRE_Surface_Precipitation_Rate_Night.md | 2 +-
..._Surface_Soil_Moisture_C_Band_Day_Daily.md | 5 +
...urface_Soil_Moisture_C_Band_Night_Daily.md | 5 +
.../metadata/layers/modis/Chlorophyll_a.md | 2 +-
.../MODIS_Aqua_L3_SST_MidIR_4km_Night_8Day.md | 2 +-
.../modis/aqua/MODIS_Aqua_NDSI_Snow_Cover.md | 2 +-
.../terra/MODIS_Terra_Cloud_Water_Path_PCL.md | 2 +-
...DIS_Terra_L3_Ice_Surface_Temp_Daily_Day.md | 2 +-
.../hls/HLS_MGRS_Granule_Grid.md | 2 +-
.../layers/multi-mission/hls/Reflectance.md | 2 +-
.../SMAP_L1_Passive_Brightness_Temp_Aft_H.md | 2 +-
...MAP_L1_Passive_Brightness_Temp_Aft_H_QA.md | 2 +-
...AP_L1_Passive_Brightness_Temp_Aft_H_RFI.md | 2 +-
.../SMAP_L1_Passive_Brightness_Temp_Aft_V.md | 2 +-
...MAP_L1_Passive_Brightness_Temp_Aft_V_QA.md | 2 +-
...AP_L1_Passive_Brightness_Temp_Aft_V_RFI.md | 2 +-
.../SMAP_L1_Passive_Brightness_Temp_Fore_H.md | 2 +-
...AP_L1_Passive_Brightness_Temp_Fore_H_QA.md | 2 +-
...P_L1_Passive_Brightness_Temp_Fore_H_RFI.md | 2 +-
.../SMAP_L1_Passive_Brightness_Temp_Fore_V.md | 2 +-
...AP_L1_Passive_Brightness_Temp_Fore_V_QA.md | 2 +-
...P_L1_Passive_Brightness_Temp_Fore_V_RFI.md | 2 +-
..._Passive_Enhanced_Brightness_Temp_Aft_H.md | 2 +-
...ssive_Enhanced_Brightness_Temp_Aft_H_QA.md | 2 +-
...sive_Enhanced_Brightness_Temp_Aft_H_RFI.md | 2 +-
..._Passive_Enhanced_Brightness_Temp_Aft_V.md | 2 +-
...ssive_Enhanced_Brightness_Temp_Aft_V_QA.md | 2 +-
...sive_Enhanced_Brightness_Temp_Aft_V_RFI.md | 2 +-
...Passive_Enhanced_Brightness_Temp_Fore_H.md | 2 +-
...sive_Enhanced_Brightness_Temp_Fore_H_QA.md | 2 +-
...ive_Enhanced_Brightness_Temp_Fore_H_RFI.md | 2 +-
...Passive_Enhanced_Brightness_Temp_Fore_V.md | 2 +-
...sive_Enhanced_Brightness_Temp_Fore_V_QA.md | 2 +-
...ive_Enhanced_Brightness_Temp_Fore_V_RFI.md | 2 +-
.../SMAP_L1_Passive_Faraday_Rotation_Aft.md | 2 +-
.../SMAP_L1_Passive_Faraday_Rotation_Fore.md | 2 +-
...AP_L2_Passive_Day_Soil_Moisture_Option1.md | 2 +-
...AP_L2_Passive_Day_Soil_Moisture_Option2.md | 2 +-
...AP_L2_Passive_Day_Soil_Moisture_Option3.md | 2 +-
...sive_Enhanced_Day_Soil_Moisture_Option1.md | 2 +-
...sive_Enhanced_Day_Soil_Moisture_Option2.md | 2 +-
...sive_Enhanced_Day_Soil_Moisture_Option3.md | 2 +-
...ve_Enhanced_Night_Soil_Moisture_Option1.md | 2 +-
...ve_Enhanced_Night_Soil_Moisture_Option2.md | 2 +-
...ve_Enhanced_Night_Soil_Moisture_Option3.md | 2 +-
..._L2_Passive_Night_Soil_Moisture_Option1.md | 2 +-
..._L2_Passive_Night_Soil_Moisture_Option2.md | 2 +-
..._L2_Passive_Night_Soil_Moisture_Option3.md | 2 +-
.../smap/SMAP_L3_Passive_Brightness_Temp_H.md | 2 +-
.../smap/SMAP_L3_Passive_Brightness_Temp_V.md | 2 +-
.../smap/SMAP_L3_Passive_Day_Freeze_Thaw.md | 2 +-
.../smap/SMAP_L3_Passive_Day_Soil_Moisture.md | 2 +-
...MAP_L3_Passive_Enhanced_Day_Freeze_Thaw.md | 2 +-
...P_L3_Passive_Enhanced_Day_Soil_Moisture.md | 2 +-
...P_L3_Passive_Enhanced_Night_Freeze_Thaw.md | 2 +-
...L3_Passive_Enhanced_Night_Soil_Moisture.md | 2 +-
.../smap/SMAP_L3_Passive_Night_Freeze_Thaw.md | 2 +-
.../SMAP_L3_Passive_Night_Soil_Moisture.md | 2 +-
..._Surface_Soil_Moisture_X_Band_Day_Daily.md | 5 +
...urface_Soil_Moisture_X_Band_Night_Daily.md | 5 +
.../metadata/layers/viirs/Chlorophyll_a.md | 2 +-
.../VIIRS_NOAA20_Ice_Surface_Temp_Day.md | 2 +-
.../VIIRS_NOAA20_Ice_Surface_Temp_Night.md | 4 +-
.../VIIRS_NOAA20_Land_Surface_Temp_Day.md | 2 +-
.../VIIRS_NOAA20_Land_Surface_Temp_Night.md | 2 +-
.../noaa20/VIIRS_NOAA20_NDSI_Snow_Cover.md | 3 +-
.../viirs/noaa20/VIIRS_NOAA20_Sea_Ice.md | 3 +-
.../layers/viirs/snpp/VIIRS_Black_Marble.md | 2 +-
.../VIIRS_SNPP_Brightness_Temp_BandI5_Day.md | 2 +-
...VIIRS_SNPP_Brightness_Temp_BandI5_Night.md | 2 +-
.../VIIRS_SNPP_Clear_Sky_Confidence_Day.md | 1 -
.../VIIRS_SNPP_DayNightBand_AtSensor_M15.md | 4 +-
...RS_SNPP_DayNightBand_At_Sensor_Radiance.md | 4 +-
.../snpp/VIIRS_SNPP_Ice_Surface_Temp_Day.md | 2 +-
.../snpp/VIIRS_SNPP_Ice_Surface_Temp_Night.md | 4 +-
.../snpp/VIIRS_SNPP_Land_Surface_Temp_Day.md | 2 +-
.../VIIRS_SNPP_Land_Surface_Temp_Night.md | 2 +-
.../dust_storms_overview_2019/step001.md | 2 +-
.../metadata/stories/geostationary/step002.md | 2 +-
.../stories/surface_water_extent/step001.md | 1 +
.../stories/surface_water_extent/step002.md | 1 +
.../stories/surface_water_extent/step003.md | 1 +
.../stories/surface_water_extent/step004.md | 3 +
.../stories/surface_water_extent/step005.md | 1 +
.../stories/surface_water_extent/step006.md | 1 +
.../stories/surface_water_extent/step007.md | 2 +
.../stories/surface_water_extent/step008.md | 1 +
.../stories/surface_water_extent/step009.md | 1 +
.../stories/surface_water_extent/step010.md | 3 +
.../surface-water-extent.png | Bin 0 -> 122532 bytes
.../common/config/wv.json/layerOrder.json | 4 +
...urface_Soil_Moisture_C_Band_Day_Daily.json | 11 +
...face_Soil_Moisture_C_Band_Night_Daily.json | 11 +
.../hls/HLS_Customizable_Landsat.json | 3 +
.../hls/HLS_Customizable_Sentinel.json | 7 +-
.../hls/HLS_False_Color_Landsat.json | 3 +
.../hls/HLS_False_Color_Sentinel.json | 3 +
.../hls/HLS_False_Color_Urban_Landsat.json | 3 +
.../hls/HLS_False_Color_Urban_Sentinel.json | 3 +
.../HLS_False_Color_Vegetation_Landsat.json | 3 +
.../HLS_False_Color_Vegetation_Sentinel.json | 3 +
...S_L30_Nadir_BRDF_Adjusted_Reflectance.json | 1 +
.../hls/HLS_Moisture_Index_Landsat.json | 3 +
.../hls/HLS_Moisture_Index_Sentinel.json | 3 +
.../multi-mission/hls/HLS_NDSI_Landsat.json | 3 +
.../multi-mission/hls/HLS_NDSI_Sentinel.json | 3 +
.../multi-mission/hls/HLS_NDVI_Landsat.json | 3 +
.../multi-mission/hls/HLS_NDVI_Sentinel.json | 3 +
.../multi-mission/hls/HLS_NDWI_Landsat.json | 3 +
.../multi-mission/hls/HLS_NDWI_Sentinel.json | 3 +
...S_S30_Nadir_BRDF_Adjusted_Reflectance.json | 1 +
.../hls/HLS_Shortwave_Infrared_Landsat.json | 3 +
.../hls/HLS_Shortwave_Infrared_Sentinel.json | 3 +
..._Surface_Water_Extent-HLS_Provisional.json | 1 +
...urface_Soil_Moisture_X_Band_Day_Daily.json | 11 +
...face_Soil_Moisture_X_Band_Night_Daily.json | 11 +
.../stories/default/surface_water_extent.json | 114 ++
.../common/config/wv.json/storyOrder.json | 1 +
doc/config/layers.md | 2 +-
doc/deployment.md | 0
doc/e2e_testing.md | 19 +
e2e/features/animation/animation-test.spec.js | 16 +-
e2e/features/animation/gif-test.spec.js | 16 +-
.../animation/mobile-animation-test.spec.js | 5 +-
.../compare/compare-mobile-test.spec.js | 4 +-
e2e/features/compare/compare-test.spec.js | 9 +-
.../compare/layer-dialog-test.spec.js | 4 +-
.../compare/layer-sidebar-test.spec.js | 6 +-
e2e/features/compare/permalinks-test.spec.js | 16 +-
e2e/features/compare/timeline-test.spec.js | 6 +-
e2e/features/events/event-filter-test.spec.js | 21 +-
e2e/features/events/event-test.spec.js | 44 +-
.../events/events-mobile-test.spec.js | 9 +-
.../coordinate-format-test.spec.js | 7 +-
.../global-unit/global-unit-test.spec.js | 10 +-
.../crosses-dateline-test.spec.js | 13 +-
.../image-download/formats-test.spec.js | 10 +-
.../image-download/global-select-test.spec.js | 6 +-
.../image-download/initial-state-test.spec.js | 7 +-
.../image-download/layers-test.spec.js | 17 +-
.../image-download/projection-test.spec.js | 9 +-
.../resolutions3413-test.spec.js | 7 +-
.../resolutions4326-test.spec.js | 7 +-
e2e/features/image-download/time-test.spec.js | 15 +-
.../image-download/unsupported-test.spec.js | 10 +-
.../layers/layer-picker-mobile-test.spec.js | 10 +-
e2e/features/layers/layer-picker-test.spec.js | 6 +-
.../layers/layers-sidebar-test.spec.js | 39 +-
.../layers/layers-vector-test.spec.js | 9 +-
e2e/features/layers/options-test.spec.js | 5 +-
.../layers/recent-layers-mobile-test.spec.js | 6 +-
.../layers/recent-layers-test.spec.js | 6 +-
.../location-search-mobile-test.spec.js | 5 +-
.../location-search-test.spec.js | 20 +-
e2e/features/measure/measure-test.spec.js | 6 +-
e2e/features/modal/about-modal-test.spec.js | 6 +-
.../notifications/notify-test.spec.js | 7 +-
e2e/features/palettes/disable-test.spec.js | 10 +-
.../projections/projections-test.spec.js | 6 +-
e2e/features/share/share-test.spec.js | 21 +-
.../timeline/date-selector-test.spec.js | 51 +-
.../layer-coverage-panel-test.spec.js | 13 +-
.../timeline/timeline-mobile-test.spec.js | 17 +-
e2e/features/timeline/timeline-test.spec.js | 24 +-
e2e/features/tour/tour-test.spec.js | 5 +-
.../ui/distraction-free-mode-test.spec.js | 8 +-
e2e/features/ui/info-mobile-test.spec.js | 5 +-
e2e/features/ui/info-test.spec.js | 5 +-
e2e/test-utils/hooks/wvHooks.js | 8 +
package-lock.json | 1118 +++++++++++------
package.json | 58 +-
...Surface_Soil_Moisture_C_Band_Day_Daily.jpg | Bin 0 -> 41250 bytes
...rface_Soil_Moisture_C_Band_Night_Daily.jpg | Bin 0 -> 40880 bytes
...Surface_Soil_Moisture_X_Band_Day_Daily.jpg | Bin 0 -> 24328 bytes
...rface_Soil_Moisture_X_Band_Night_Daily.jpg | Bin 0 -> 22601 bytes
web/index.html | 2 +-
.../feature-alert/granuleAlertModal.js | 26 +
.../feature-alert/zoomAlertModal.js | 26 +
.../layer/settings/imagery-search.js | 151 +++
.../layer/settings/layer-settings.js | 6 +
web/js/components/tour/tour-box.js | 4 +-
web/js/components/tour/tour-boxes.js | 4 +-
web/js/containers/sidebar/layer-row.js | 122 +-
web/js/containers/sidebar/zot.js | 13 +-
web/js/containers/timeline/timeline.js | 9 +-
web/js/map/layerbuilder.js | 2 +-
.../dev-test-mode/dev-console-test.js | 6 +-
.../tile-measurement/tile-measurement.js | 21 +-
.../tile-measurement/utils/layer-data-eic.js | 6 +-
.../update-collections/updateCollections.js | 74 +-
web/js/mapUI/mapUI.js | 4 +-
web/js/modules/alerts/constants.js | 24 +
web/js/modules/layers/selectors.js | 4 +-
web/js/modules/layers/util.js | 13 +-
web/js/modules/product-picker/selectors.js | 2 +-
web/scss/components/alert.scss | 2 +-
web/scss/features/customize-bands.scss | 8 +
web/scss/features/layers.scss | 32 +
web/scss/features/sidebar-panel.scss | 16 +
216 files changed, 1880 insertions(+), 923 deletions(-)
create mode 100644 config/default/common/config/metadata/layers/amsre/LPRM_AMSRE_Surface_Soil_Moisture_C_Band_Day_Daily.md
create mode 100644 config/default/common/config/metadata/layers/amsre/LPRM_AMSRE_Surface_Soil_Moisture_C_Band_Night_Daily.md
create mode 100644 config/default/common/config/metadata/layers/trmm/LPRM_TMI_Surface_Soil_Moisture_X_Band_Day_Daily.md
create mode 100644 config/default/common/config/metadata/layers/trmm/LPRM_TMI_Surface_Soil_Moisture_X_Band_Night_Daily.md
create mode 100644 config/default/common/config/metadata/stories/surface_water_extent/step001.md
create mode 100644 config/default/common/config/metadata/stories/surface_water_extent/step002.md
create mode 100644 config/default/common/config/metadata/stories/surface_water_extent/step003.md
create mode 100644 config/default/common/config/metadata/stories/surface_water_extent/step004.md
create mode 100644 config/default/common/config/metadata/stories/surface_water_extent/step005.md
create mode 100644 config/default/common/config/metadata/stories/surface_water_extent/step006.md
create mode 100644 config/default/common/config/metadata/stories/surface_water_extent/step007.md
create mode 100644 config/default/common/config/metadata/stories/surface_water_extent/step008.md
create mode 100644 config/default/common/config/metadata/stories/surface_water_extent/step009.md
create mode 100644 config/default/common/config/metadata/stories/surface_water_extent/step010.md
create mode 100644 config/default/common/config/metadata/stories/surface_water_extent/surface-water-extent.png
create mode 100644 config/default/common/config/wv.json/layers/amsre/LPRM_AMSRE_Surface_Soil_Moisture_C_Band_Day_Daily.json
create mode 100644 config/default/common/config/wv.json/layers/amsre/LPRM_AMSRE_Surface_Soil_Moisture_C_Band_Night_Daily.json
create mode 100644 config/default/common/config/wv.json/layers/trmm/LPRM_TMI_Surface_Soil_Moisture_X_Band_Day_Daily.json
create mode 100644 config/default/common/config/wv.json/layers/trmm/LPRM_TMI_Surface_Soil_Moisture_X_Band_Night_Daily.json
create mode 100644 config/default/common/config/wv.json/stories/default/surface_water_extent.json
delete mode 100644 doc/deployment.md
create mode 100644 web/images/layers/previews/geographic/LPRM_AMSRE_Surface_Soil_Moisture_C_Band_Day_Daily.jpg
create mode 100644 web/images/layers/previews/geographic/LPRM_AMSRE_Surface_Soil_Moisture_C_Band_Night_Daily.jpg
create mode 100644 web/images/layers/previews/geographic/LPRM_TMI_Surface_Soil_Moisture_X_Band_Day_Daily.jpg
create mode 100644 web/images/layers/previews/geographic/LPRM_TMI_Surface_Soil_Moisture_X_Band_Night_Daily.jpg
create mode 100644 web/js/components/feature-alert/granuleAlertModal.js
create mode 100644 web/js/components/feature-alert/zoomAlertModal.js
create mode 100644 web/js/components/layer/settings/imagery-search.js
diff --git a/.vscode/settings.json b/.vscode/settings.json
index 4a1f9fa801..80f2403d87 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -1,7 +1,7 @@
{
"files.trimTrailingWhitespace": true,
"editor.codeActionsOnSave": {
- "source.fixAll.eslint": true
+ "source.fixAll.eslint": "explicit"
},
"files.exclude": {
"**./node_modules": true
diff --git a/LICENSE.md b/LICENSE.md
index 90de2dfd8c..1895d457d9 100644
--- a/LICENSE.md
+++ b/LICENSE.md
@@ -3,7 +3,7 @@
This code was originally developed at NASA/Goddard Space Flight Center for
the Earth Science Data and Information System (ESDIS) project.
-Copyright © 2013 - 2023 United States Government as represented by the
+Copyright © 2013 - 2024 United States Government as represented by the
Administrator of the National Aeronautics and Space Administration.
All Rights Reserved.
@@ -131,7 +131,7 @@ customarily used for software exchange.
**B.** Each Recipient must ensure that the following copyright notice appears
prominently in the Subject Software:
- Copyright © 2012-2023 United States Government
+ Copyright © 2012-2024 United States Government
as represented by the Administrator of the
National Aeronautics and Space Administration.
All Rights Reserved.
diff --git a/README.md b/README.md
index 037ef0cb60..f93632304f 100644
--- a/README.md
+++ b/README.md
@@ -76,7 +76,6 @@ To update Worldview, pull down any branch or tag from GitHub. From the `main` br
- [Custom Branding](doc/branding.md)
- [Optional Features](doc/features.md)
- [Developing](doc/developing.md)
-- [Deployment](doc/deployment.md)
- [Testing](doc/testing.md)
- [URL Parameters](doc/url_parameters.md)
- [Uploading](doc/upload.md)
diff --git a/config/default/common/brand/about/license.md b/config/default/common/brand/about/license.md
index b53b25b5fb..db2217b7c0 100644
--- a/config/default/common/brand/about/license.md
+++ b/config/default/common/brand/about/license.md
@@ -1,11 +1,11 @@
License
-Copyright © 2013 - 2023 United States Government as represented by the Administrator of the National Aeronautics
+
Copyright © 2013 - 2024 United States Government as represented by the Administrator of the National Aeronautics
and Space Administration. All Rights Reserved. This software is licensed under the NASA Open Source
+ href="https://opensource.gsfc.nasa.gov/nosa.php" target="_blank" rel="noopener noreferrer">NASA Open Source
Software Agreement, Version 1.3. Source code is available on the NASA GIBS
GitHub.
@BUILD_TIMESTAMP@
Responsible NASA Official: Ryan
Boller
-Web Privacy Policy
\ No newline at end of file
+Web Privacy Policy
\ No newline at end of file
diff --git a/config/default/common/config/metadata/layers/amsr2/AMSRU2_Cloud_Liquid_Water_Day.md b/config/default/common/config/metadata/layers/amsr2/AMSRU2_Cloud_Liquid_Water_Day.md
index 53339529b6..468fe10c9a 100644
--- a/config/default/common/config/metadata/layers/amsr2/AMSRU2_Cloud_Liquid_Water_Day.md
+++ b/config/default/common/config/metadata/layers/amsr2/AMSRU2_Cloud_Liquid_Water_Day.md
@@ -4,4 +4,4 @@ The AMSR2 instrument is a conically scanning passive microwave radiometer. This
The imagery resolution is 2 km and sensor resolution is 6.25 km. The temporal resolution is daily.
-References: AU_OCEAN_NRT [doi:10.5067/AMSRU/AU_OCEAN_NRT_R01](https://doi.org/10.5067/AMSRU/AU_OCEAN_NRT_R01)
+References: AU_OCEAN_NRT [doi:10.5067/AMSRU/AU_OCEAN_NRT_R01](https://doi.org/10.5067/AMSRU/AU_OCEAN_NRT_R01); AU_OCEAN [doi:10.5067/9YQRFKKEPUP4](https://doi.org/10.5067/9YQRFKKEPUP4)
diff --git a/config/default/common/config/metadata/layers/amsr2/AMSRU2_Cloud_Liquid_Water_Night.md b/config/default/common/config/metadata/layers/amsr2/AMSRU2_Cloud_Liquid_Water_Night.md
index 2cc1fac33f..4cb1c9010f 100644
--- a/config/default/common/config/metadata/layers/amsr2/AMSRU2_Cloud_Liquid_Water_Night.md
+++ b/config/default/common/config/metadata/layers/amsr2/AMSRU2_Cloud_Liquid_Water_Night.md
@@ -4,4 +4,4 @@ The AMSR2 instrument is a conically scanning passive microwave radiometer. This
The imagery resolution is 2 km and sensor resolution is 6.25 km. The temporal resolution is daily.
-References: AU_OCEAN_NRT [doi:10.5067/AMSRU/AU_OCEAN_NRT_R01](https://doi.org/10.5067/AMSRU/AU_OCEAN_NRT_R01)
\ No newline at end of file
+References: AU_OCEAN_NRT [doi:10.5067/AMSRU/AU_OCEAN_NRT_R01](https://doi.org/10.5067/AMSRU/AU_OCEAN_NRT_R01); AU_OCEAN [doi:10.5067/9YQRFKKEPUP4](https://doi.org/10.5067/9YQRFKKEPUP4)
\ No newline at end of file
diff --git a/config/default/common/config/metadata/layers/amsr2/AMSRU2_Columnar_Water_Vapor_Day.md b/config/default/common/config/metadata/layers/amsr2/AMSRU2_Columnar_Water_Vapor_Day.md
index 99ebe3da2a..dcf097ad22 100644
--- a/config/default/common/config/metadata/layers/amsr2/AMSRU2_Columnar_Water_Vapor_Day.md
+++ b/config/default/common/config/metadata/layers/amsr2/AMSRU2_Columnar_Water_Vapor_Day.md
@@ -2,4 +2,4 @@ The Columnar Water Vapor (Day) layer is a measure of the columnar water vapor in
The AMSR2 instrument is a conically scanning passive microwave radiometer. This instrument senses microwave radiation for twelve channels and six frequencies ranging from 6.9 GHz to 89 GHz on board the Japan Aerospace Exploration Agency (JAXA) Global Change Observation Mission – Water 1 (GCOM-W1) satellite.
-References: AU_RAIN_NRT [doi:10.5067/AMSRU/AU_RAIN_NRT_R02](https://doi.org/10.5067/AMSRU/AU_RAIN_NRT_R02)
\ No newline at end of file
+References: AU_RAIN_NRT [doi:10.5067/AMSRU/AU_RAIN_NRT_R02](https://doi.org/10.5067/AMSRU/AU_RAIN_NRT_R02); AU_RAIN [doi:10.5067/P5MCTDH7674A](https://doi.org/10.5067/P5MCTDH7674A)
\ No newline at end of file
diff --git a/config/default/common/config/metadata/layers/amsr2/AMSRU2_Columnar_Water_Vapor_Night.md b/config/default/common/config/metadata/layers/amsr2/AMSRU2_Columnar_Water_Vapor_Night.md
index 69bc167bc6..2bda9a34f2 100644
--- a/config/default/common/config/metadata/layers/amsr2/AMSRU2_Columnar_Water_Vapor_Night.md
+++ b/config/default/common/config/metadata/layers/amsr2/AMSRU2_Columnar_Water_Vapor_Night.md
@@ -2,4 +2,4 @@ The Columnar Water Vapor (Night) layer is a measure of the columnar water vapor
The AMSR2 instrument is a conically scanning passive microwave radiometer. This instrument senses microwave radiation for twelve channels and six frequencies ranging from 6.9 GHz to 89 GHz on board the Japan Aerospace Exploration Agency (JAXA) Global Change Observation Mission – Water 1 (GCOM-W1) satellite.
-References: AU_RAIN_NRT [doi:10.5067/AMSRU/AU_RAIN_NRT_R02](https://doi.org/10.5067/AMSRU/AU_RAIN_NRT_R02)
\ No newline at end of file
+References: AU_RAIN_NRT [doi:10.5067/AMSRU/AU_RAIN_NRT_R02](https://doi.org/10.5067/AMSRU/AU_RAIN_NRT_R02); AU_RAIN [doi:10.5067/P5MCTDH7674A](https://doi.org/10.5067/P5MCTDH7674A)
\ No newline at end of file
diff --git a/config/default/common/config/metadata/layers/amsr2/AMSRU2_Surface_Precipitation_Day.md b/config/default/common/config/metadata/layers/amsr2/AMSRU2_Surface_Precipitation_Day.md
index 09a8bb7a47..13b312641e 100644
--- a/config/default/common/config/metadata/layers/amsr2/AMSRU2_Surface_Precipitation_Day.md
+++ b/config/default/common/config/metadata/layers/amsr2/AMSRU2_Surface_Precipitation_Day.md
@@ -2,4 +2,4 @@ The Surface Precipitation (Day) layer displays instantaneous surface precipitati
The Advanced Microwave Scanning Radiometer 2 (AMSR2) instrument on the Global Change Observation Mission - Water 1 (GCOM-W1) provides global passive microwave measurements of terrestrial, oceanic, and atmospheric parameters for the investigation of global water and energy cycles. The GCOM-W1 NRT AMSR2 Unified Global Swath Surface Precipitation GSFC Profiling Algorithm is a swath product containing global rain rate and type, calculated by the GPROF 2017 V2R rainfall retrieval algorithm using resampled NRT Level-1R data provided by JAXA. This is the same algorithm that generates the corresponding standard science products in the AMSR SIPS.
-References: AU_Rain_NRT [doi:10.5067/AMSRU/AU_RAIN_NRT_R02](https://doi.org/10.5067/AMSRU/AU_RAIN_NRT_R02)
\ No newline at end of file
+References: AU_RAIN_NRT [doi:10.5067/AMSRU/AU_RAIN_NRT_R02](https://doi.org/10.5067/AMSRU/AU_RAIN_NRT_R02); AU_RAIN [doi:10.5067/P5MCTDH7674A](https://doi.org/10.5067/P5MCTDH7674A)
\ No newline at end of file
diff --git a/config/default/common/config/metadata/layers/amsr2/AMSRU2_Surface_Precipitation_Night.md b/config/default/common/config/metadata/layers/amsr2/AMSRU2_Surface_Precipitation_Night.md
index 79e5803343..fc110deab4 100644
--- a/config/default/common/config/metadata/layers/amsr2/AMSRU2_Surface_Precipitation_Night.md
+++ b/config/default/common/config/metadata/layers/amsr2/AMSRU2_Surface_Precipitation_Night.md
@@ -2,4 +2,4 @@ The Surface Precipitation (Night) layer displays instantaneous surface precipita
The Advanced Microwave Scanning Radiometer 2 (AMSR2) instrument on the Global Change Observation Mission - Water 1 (GCOM-W1) provides global passive microwave measurements of terrestrial, oceanic, and atmospheric parameters for the investigation of global water and energy cycles. The GCOM-W1 NRT AMSR2 Unified Global Swath Surface Precipitation GSFC Profiling Algorithm is a swath product containing global rain rate and type, calculated by the GPROF 2017 V2R rainfall retrieval algorithm using resampled NRT Level-1R data provided by JAXA. This is the same algorithm that generates the corresponding standard science products in the AMSR SIPS.
-References: AU_Rain_NRT [doi:10.5067/AMSRU/AU_RAIN_NRT_R02](https://doi.org/10.5067/AMSRU/AU_RAIN_NRT_R02)
\ No newline at end of file
+References: AU_RAIN_NRT [doi:10.5067/AMSRU/AU_RAIN_NRT_R02](https://doi.org/10.5067/AMSRU/AU_RAIN_NRT_R02); AU_RAIN [doi:10.5067/P5MCTDH7674A](https://doi.org/10.5067/P5MCTDH7674A)
\ No newline at end of file
diff --git a/config/default/common/config/metadata/layers/amsr2/AMSRU2_Total_Precipitable_Water_Day.md b/config/default/common/config/metadata/layers/amsr2/AMSRU2_Total_Precipitable_Water_Day.md
index 186efd1b00..b0e528d934 100644
--- a/config/default/common/config/metadata/layers/amsr2/AMSRU2_Total_Precipitable_Water_Day.md
+++ b/config/default/common/config/metadata/layers/amsr2/AMSRU2_Total_Precipitable_Water_Day.md
@@ -2,4 +2,4 @@ The Total Precipitable Water (Day) layer displays precipitable water totals over
The Advanced Microwave Scanning Radiometer 2 (AMSR2) instrument on the Global Change Observation Mission - Water 1 (GCOM-W1) provides global passive microwave measurements of terrestrial, oceanic, and atmospheric parameters for the investigation of global water and energy cycles. The GCOM-W1 NRT AMSR2 Unified Global Swath Surface Precipitation GSFC Profiling Algorithm is a swath product containing global rain rate and type, calculated by the GPROF 2017 V2R rainfall retrieval algorithm using resampled NRT Level-1R data provided by JAXA. This is the same algorithm that generates the corresponding standard science products in the AMSR SIPS.
-References: AU_OCEAN_NRT [doi:10.5067/AMSRU/AU_OCEAN_NRT_R01](https://doi.org/10.5067/AMSRU/AU_OCEAN_NRT_R01)
\ No newline at end of file
+References: AU_OCEAN_NRT [doi:10.5067/AMSRU/AU_OCEAN_NRT_R01](https://doi.org/10.5067/AMSRU/AU_OCEAN_NRT_R01); AU_OCEAN [doi:10.5067/9YQRFKKEPUP4](https://doi.org/10.5067/9YQRFKKEPUP4)
\ No newline at end of file
diff --git a/config/default/common/config/metadata/layers/amsr2/AMSRU2_Total_Precipitable_Water_Night.md b/config/default/common/config/metadata/layers/amsr2/AMSRU2_Total_Precipitable_Water_Night.md
index 57d5079dfd..7d85501bcd 100644
--- a/config/default/common/config/metadata/layers/amsr2/AMSRU2_Total_Precipitable_Water_Night.md
+++ b/config/default/common/config/metadata/layers/amsr2/AMSRU2_Total_Precipitable_Water_Night.md
@@ -2,4 +2,4 @@ The Total Precipitable Water (Night) layer displays precipitable water totals ov
The Advanced Microwave Scanning Radiometer 2 (AMSR2) instrument on the Global Change Observation Mission - Water 1 (GCOM-W1) provides global passive microwave measurements of terrestrial, oceanic, and atmospheric parameters for the investigation of global water and energy cycles. The GCOM-W1 NRT AMSR2 Unified Global Swath Surface Precipitation GSFC Profiling Algorithm is a swath product containing global rain rate and type, calculated by the GPROF 2017 V2R rainfall retrieval algorithm using resampled NRT Level-1R data provided by JAXA. This is the same algorithm that generates the corresponding standard science products in the AMSR SIPS.
-References: AU_OCEAN_NRT [doi:10.5067/AMSRU/AU_OCEAN_NRT_R01](https://doi.org/10.5067/AMSRU/AU_OCEAN_NRT_R01)
\ No newline at end of file
+References: AU_OCEAN_NRT [doi:10.5067/AMSRU/AU_OCEAN_NRT_R01](https://doi.org/10.5067/AMSRU/AU_OCEAN_NRT_R01); AU_OCEAN [doi:10.5067/9YQRFKKEPUP4](https://doi.org/10.5067/9YQRFKKEPUP4)
\ No newline at end of file
diff --git a/config/default/common/config/metadata/layers/amsr2/AMSRU2_Wind_Speed_Day.md b/config/default/common/config/metadata/layers/amsr2/AMSRU2_Wind_Speed_Day.md
index 97bc6ee0da..c9ecf3de91 100644
--- a/config/default/common/config/metadata/layers/amsr2/AMSRU2_Wind_Speed_Day.md
+++ b/config/default/common/config/metadata/layers/amsr2/AMSRU2_Wind_Speed_Day.md
@@ -2,4 +2,4 @@ The Wind Speed (Day) layer shows wind speed over oceans in meters per second (m/
The Advanced Microwave Scanning Radiometer 2 (AMSR2) instrument on the Global Change Observation Mission - Water 1 (GCOM-W1) provides global passive microwave measurements of terrestrial, oceanic, and atmospheric parameters for the investigation of global water and energy cycles. The GCOM-W1 NRT AMSR2 Unified Global Swath Surface Precipitation GSFC Profiling Algorithm is a swath product containing global rain rate and type, calculated by the GPROF 2017 V2R rainfall retrieval algorithm using resampled NRT Level-1R data provided by JAXA. This is the same algorithm that generates the corresponding standard science products in the AMSR SIPS.
-References: AU_OCEAN_NRT [doi:10.5067/AMSRU/AU_OCEAN_NRT_R01](https://doi.org/10.5067/AMSRU/AU_OCEAN_NRT_R01)
\ No newline at end of file
+References: AU_OCEAN_NRT [doi:10.5067/AMSRU/AU_OCEAN_NRT_R01](https://doi.org/10.5067/AMSRU/AU_OCEAN_NRT_R01); AU_OCEAN [doi:10.5067/9YQRFKKEPUP4](https://doi.org/10.5067/9YQRFKKEPUP4)
\ No newline at end of file
diff --git a/config/default/common/config/metadata/layers/amsr2/AMSRU2_Wind_Speed_Night.md b/config/default/common/config/metadata/layers/amsr2/AMSRU2_Wind_Speed_Night.md
index 067f1cc035..a069e62d64 100644
--- a/config/default/common/config/metadata/layers/amsr2/AMSRU2_Wind_Speed_Night.md
+++ b/config/default/common/config/metadata/layers/amsr2/AMSRU2_Wind_Speed_Night.md
@@ -2,4 +2,4 @@ The Wind Speed (Night) layer shows wind speed over oceans in meters per second (
The Advanced Microwave Scanning Radiometer 2 (AMSR2) instrument on the Global Change Observation Mission - Water 1 (GCOM-W1) provides global passive microwave measurements of terrestrial, oceanic, and atmospheric parameters for the investigation of global water and energy cycles. The GCOM-W1 NRT AMSR2 Unified Global Swath Surface Precipitation GSFC Profiling Algorithm is a swath product containing global rain rate and type, calculated by the GPROF 2017 V2R rainfall retrieval algorithm using resampled NRT Level-1R data provided by JAXA. This is the same algorithm that generates the corresponding standard science products in the AMSR SIPS.
-References: AU_OCEAN_NRT [doi:10.5067/AMSRU/AU_OCEAN_NRT_R01](https://doi.org/10.5067/AMSRU/AU_OCEAN_NRT_R01)
\ No newline at end of file
+References: AU_OCEAN_NRT [doi:10.5067/AMSRU/AU_OCEAN_NRT_R01](https://doi.org/10.5067/AMSRU/AU_OCEAN_NRT_R01); AU_OCEAN [doi:10.5067/9YQRFKKEPUP4](https://doi.org/10.5067/9YQRFKKEPUP4)
\ No newline at end of file
diff --git a/config/default/common/config/metadata/layers/amsre/AMSRE_Columnar_Water_Vapor_Day.md b/config/default/common/config/metadata/layers/amsre/AMSRE_Columnar_Water_Vapor_Day.md
index 654b776d4c..38f8b6f942 100644
--- a/config/default/common/config/metadata/layers/amsre/AMSRE_Columnar_Water_Vapor_Day.md
+++ b/config/default/common/config/metadata/layers/amsre/AMSRE_Columnar_Water_Vapor_Day.md
@@ -4,4 +4,4 @@ Onboard NASA's Aqua satellite, the AMSR-E radiometer measured terrestrial, ocean
Data field: `TotalColWaterVapor`
-References: [doi:10.5067/IR85TKB5BLM3](https://doi.org/10.5067/IR85TKB5BLM3)
\ No newline at end of file
+References: AE_Rain [doi:10.5067/IR85TKB5BLM3](https://doi.org/10.5067/IR85TKB5BLM3)
\ No newline at end of file
diff --git a/config/default/common/config/metadata/layers/amsre/AMSRE_Columnar_Water_Vapor_Night.md b/config/default/common/config/metadata/layers/amsre/AMSRE_Columnar_Water_Vapor_Night.md
index 460a616460..a88ec93c57 100644
--- a/config/default/common/config/metadata/layers/amsre/AMSRE_Columnar_Water_Vapor_Night.md
+++ b/config/default/common/config/metadata/layers/amsre/AMSRE_Columnar_Water_Vapor_Night.md
@@ -4,4 +4,4 @@ Onboard NASA's Aqua satellite, the AMSR-E radiometer measured terrestrial, ocean
Data field: `TotalColWaterVapor`
-References: [doi:10.5067/IR85TKB5BLM3](https://doi.org/10.5067/IR85TKB5BLM3)
\ No newline at end of file
+References: AE_Rain [doi:10.5067/IR85TKB5BLM3](https://doi.org/10.5067/IR85TKB5BLM3)
\ No newline at end of file
diff --git a/config/default/common/config/metadata/layers/amsre/AMSRE_Surface_Precipitation_Rate_Day.md b/config/default/common/config/metadata/layers/amsre/AMSRE_Surface_Precipitation_Rate_Day.md
index 553ff0ae08..6caedb269c 100644
--- a/config/default/common/config/metadata/layers/amsre/AMSRE_Surface_Precipitation_Rate_Day.md
+++ b/config/default/common/config/metadata/layers/amsre/AMSRE_Surface_Precipitation_Rate_Day.md
@@ -6,6 +6,6 @@ Onboard NASA's Aqua satellite, the AMSR-E radiometer measured terrestrial, ocean
Data field: `surfacePrecipitation`
-References: [doi:10.5067/IR85TKB5BLM3](https://doi.org/10.5067/IR85TKB5BLM3)
+References: AE_Rain [doi:10.5067/IR85TKB5BLM3](https://doi.org/10.5067/IR85TKB5BLM3)
diff --git a/config/default/common/config/metadata/layers/amsre/AMSRE_Surface_Precipitation_Rate_Night.md b/config/default/common/config/metadata/layers/amsre/AMSRE_Surface_Precipitation_Rate_Night.md
index 7ee079b598..49f8361628 100644
--- a/config/default/common/config/metadata/layers/amsre/AMSRE_Surface_Precipitation_Rate_Night.md
+++ b/config/default/common/config/metadata/layers/amsre/AMSRE_Surface_Precipitation_Rate_Night.md
@@ -6,4 +6,4 @@ Onboard NASA's Aqua satellite, the AMSR-E radiometer measured terrestrial, ocean
Data field: `surfacePrecipitation`
-References: [doi:10.5067/IR85TKB5BLM3](https://doi.org/10.5067/IR85TKB5BLM3)
\ No newline at end of file
+References: AE_Rain [doi:10.5067/IR85TKB5BLM3](https://doi.org/10.5067/IR85TKB5BLM3)
\ No newline at end of file
diff --git a/config/default/common/config/metadata/layers/amsre/LPRM_AMSRE_Surface_Soil_Moisture_C_Band_Day_Daily.md b/config/default/common/config/metadata/layers/amsre/LPRM_AMSRE_Surface_Soil_Moisture_C_Band_Day_Daily.md
new file mode 100644
index 0000000000..317bf81d4b
--- /dev/null
+++ b/config/default/common/config/metadata/layers/amsre/LPRM_AMSRE_Surface_Soil_Moisture_C_Band_Day_Daily.md
@@ -0,0 +1,5 @@
+The Surface Soil Moisture C-band (Day, Daily) layer displays level 3, daily, gridded surface soil moisture from the daytime (ascending) overpass. The surface soil moisture is derived from passive microwave remote sensing data from the Advanced Microwave Scanning Radiometer-Earth Observing System (AMSR-E), using the Land Parameter Retrieval Model (LPRM). The LPRM is based on a forward radiative transfer model to retrieve surface soil moisture and vegetation optical depth.
+
+The spatial resolution is 25 km x 25 km, the imagery resolution is 2 km and temporal availability is daily, covering the period from June 2002 to October 2011.
+
+References: LPRM_AMSRE_A_SOILM3 [doi:10.5067/X3K5V3NNLYAV](https://doi.org/10.5067/X3K5V3NNLYAV)
\ No newline at end of file
diff --git a/config/default/common/config/metadata/layers/amsre/LPRM_AMSRE_Surface_Soil_Moisture_C_Band_Night_Daily.md b/config/default/common/config/metadata/layers/amsre/LPRM_AMSRE_Surface_Soil_Moisture_C_Band_Night_Daily.md
new file mode 100644
index 0000000000..78ad4a4085
--- /dev/null
+++ b/config/default/common/config/metadata/layers/amsre/LPRM_AMSRE_Surface_Soil_Moisture_C_Band_Night_Daily.md
@@ -0,0 +1,5 @@
+The Surface Soil Moisture C-band (Night, Daily) layer displays level 3, daily, gridded surface soil moisture from the nighttime (descending) overpass. The surface soil moisture is derived from passive microwave remote sensing data from the Advanced Microwave Scanning Radiometer-Earth Observing System (AMSR-E), using the Land Parameter Retrieval Model (LPRM). The LPRM is based on a forward radiative transfer model to retrieve surface soil moisture and vegetation optical depth.
+
+The spatial resolution is 25 km x 25 km, the imagery resolution is 2 km and temporal availability is daily, covering the period from June 2002 to October 2011.
+
+References: LPRM_AMSRE_D_SOILM3 [doi:10.5067/MXL0MFDHWP07](https://doi.org/10.5067/MXL0MFDHWP07)
\ No newline at end of file
diff --git a/config/default/common/config/metadata/layers/modis/Chlorophyll_a.md b/config/default/common/config/metadata/layers/modis/Chlorophyll_a.md
index 11e9e3c250..d705c6d071 100644
--- a/config/default/common/config/metadata/layers/modis/Chlorophyll_a.md
+++ b/config/default/common/config/metadata/layers/modis/Chlorophyll_a.md
@@ -1,4 +1,4 @@
### About Chlorophyll *a*
Chlorophyll is a light harvesting pigment found in most photosynthetic organisms. In the ocean, phytoplankton all contain the chlorophyll pigment, which has a greenish color. Derived from the Greek words _phyto_ (plant) and _plankton_ (made to wander or drift), _phytoplankton_ are microscopic organisms that live in watery environments, both salty and fresh. Some phytoplankton are bacteria, some are protists, and most are single-celled plants. The concentration of chlorophyll *a* is used as an index of phytoplankton biomass. Phytoplankton fix carbon through photosynthesis, taking in dissolved carbon dioxide in the sea water and producing oxygen, enabling phytoplankton to grow. Changes in the amount of phytoplankton indicate the change in productivity of the ocean and as marine phytoplankton capture almost an equal amount of carbon as does photosynthesis by land vegetation, it provides an ocean link to global climate change modeling. The MODIS Chlorophyll *a* product is therefore a useful product for assessing the “health” of the ocean. The presence of phytoplankton indicates sufficient nutrient conditions for phytoplankton to flourish, but harmful algal blooms (HABs) can result when high concentrations of phytoplankton produced toxins build up. Known as red tides, blue-green algae or cyanobacteria, harmful algal blooms have severe impacts on human health, aquatic ecosystems and the economy. Chlorophyll features can also be used to trace oceanographic currents, atmospheric jets/streams and upwelling/downwelling/river plumes. Chlorophyll concentration is also useful for studying the Earth’s climate system as it is plays an integral role in the Global Carbon Cycle. More phytoplankton in the ocean may result in a higher capture rate of carbon dioxide into the ocean and help cool the planet.
-References: [OceanColor Web - Level 1&2 Browsers](https://oceancolor.gsfc.nasa.gov/cgi/browse.pl?sen=am); [OceanColor Web - Chlorophyll a](https://oceancolor.gsfc.nasa.gov/atbd/chlor_a/); [NASA Earth Observations - Chlorophyll Concentration](https://neo.gsfc.nasa.gov/view.php?datasetId=MY1DMM_CHLORA)
+References: [OceanColor Web - Level 1&2 Browsers](https://oceancolor.gsfc.nasa.gov/cgi/browse.pl?sen=am); [Earthdata Algorithm Publication Tool - Chlorophyll a](https://www.earthdata.nasa.gov/apt/documents/chlor-a/v1.0); [NASA Earth Observations - Chlorophyll Concentration](https://neo.gsfc.nasa.gov/view.php?datasetId=MY1DMM_CHLORA)
diff --git a/config/default/common/config/metadata/layers/modis/aqua/MODIS_Aqua_L3_SST_MidIR_4km_Night_8Day.md b/config/default/common/config/metadata/layers/modis/aqua/MODIS_Aqua_L3_SST_MidIR_4km_Night_8Day.md
index 907fc99bbf..1bcf7ac7ce 100644
--- a/config/default/common/config/metadata/layers/modis/aqua/MODIS_Aqua_L3_SST_MidIR_4km_Night_8Day.md
+++ b/config/default/common/config/metadata/layers/modis/aqua/MODIS_Aqua_L3_SST_MidIR_4km_Night_8Day.md
@@ -1,5 +1,5 @@
The MODIS L3 SST 4km layer shows global nighttime sea surface temperature (SST) at a depth of a few micrometers with ranges from -1.8 to 32 degree Celsius. The SST is derived with a Mid-Infrared (Short–Wave) SST Algorithm that uses MODIS bands 22 and 23 at 3.959 and 4.050 μm. This Level 3 product is derived from native 1 km Level 2 SST observations that are mapped to a global 4.63 km grid. The temporal resolution of this MODIS L3 SST is 8-Day.
-References: MODIS_AQUA_L3_SST_MID-IR_8DAY_4KM_NIGHTTIME_V2019.0 [doi:10.5067/MODAM-8D4N9](https://doi.org/10.5067/MODAM-8D4N9); Details of the [algorithm](https://oceancolor.gsfc.nasa.gov/atbd/sst4/) can be found at Ocean Biology Processing Group (OBPG/OB.DAAC) website.
+References: MODIS_AQUA_L3_SST_MID-IR_8DAY_4KM_NIGHTTIME_V2019.0 [doi:10.5067/MODAM-8D4N9](https://doi.org/10.5067/MODAM-8D4N9); Details of the [algorithm](https://oceancolor.gsfc.nasa.gov/resources/atbd/sst4/) can be found at Ocean Biology Processing Group (OBPG/OB.DAAC) website.
P. J. Minnett et al., "Sea-surface temperature measurements from the Moderate-Resolution Imaging Spectroradiometer (MODIS) on Aqua and Terra," IGARSS 2004. 2004 IEEE International Geoscience and Remote Sensing Symposium, Anchorage, AK, 2004, pp. 4576-4579 vol.7. [doi:10.1109/IGARSS.2004.1370173](https://doi.org/10.1109/IGARSS.2004.1370173).
diff --git a/config/default/common/config/metadata/layers/modis/aqua/MODIS_Aqua_NDSI_Snow_Cover.md b/config/default/common/config/metadata/layers/modis/aqua/MODIS_Aqua_NDSI_Snow_Cover.md
index 8334e3db41..e9fb97a132 100644
--- a/config/default/common/config/metadata/layers/modis/aqua/MODIS_Aqua_NDSI_Snow_Cover.md
+++ b/config/default/common/config/metadata/layers/modis/aqua/MODIS_Aqua_NDSI_Snow_Cover.md
@@ -2,4 +2,4 @@ The MODIS Snow Cover (Normalized Difference Snow Index (NDSI)) layer shows the p
The MODIS Snow Cover (Normalized Difference Snow Index) layer is available from both the Terra (MOD10) and Aqua (MYD10) satellites. The sensor and imagery resolution is 500 m and the temporal resolution is daily.
-References: MYD10_L2 [doi:10.5067/MODIS/MYD11_L2.061](https://doi.org/10.5067/MODIS/MYD11_L2.061); [NASA Earth Observations - Snow Cover](https://neo.gsfc.nasa.gov/view.php?datasetId=MOD10C1_M_SNOW)
+References: MYD10_L2 [doi:10.5067/MODIS/MYD10_L2.061](https://doi.org/10.5067/MODIS/MYD10_L2.061); [NASA Earth Observations - Snow Cover](https://neo.gsfc.nasa.gov/view.php?datasetId=MOD10C1_M_SNOW)
diff --git a/config/default/common/config/metadata/layers/modis/terra/MODIS_Terra_Cloud_Water_Path_PCL.md b/config/default/common/config/metadata/layers/modis/terra/MODIS_Terra_Cloud_Water_Path_PCL.md
index 1a57406153..3284205447 100644
--- a/config/default/common/config/metadata/layers/modis/terra/MODIS_Terra_Cloud_Water_Path_PCL.md
+++ b/config/default/common/config/metadata/layers/modis/terra/MODIS_Terra_Cloud_Water_Path_PCL.md
@@ -2,4 +2,4 @@ The MODIS Cloud Water Path (PCL) indicates the amount of water in the atmosphere
The MODIS Cloud Water Path layers are available from both the Terra (MOD06) and Aqua (MYD06) satellites for daytime overpasses. The sensor/algorithm resolution is 1 km, imagery resolution is 1 km, and the temporal resolution is daily.
-References: [MODIS Atmosphere - Cloud (06_L2)](https://modis-atmos.gsfc.nasa.gov/products/cloud); [NCAR|UCAR Climate Date Guide: Cloud Water Path](https://climatedataguide.ucar.edu/climate-data/liquid-water-path-overview); [GES DISC: Cloud Water Path](https://disc.gsfc.nasa.gov/information/glossary?title=Cloud%20Water%20Path)
+References: [MODIS Atmosphere - Cloud (06_L2)](https://modis-atmos.gsfc.nasa.gov/products/cloud); [NCAR|UCAR Climate Date Guide: Cloud Dataset Overview](https://climatedataguide.ucar.edu/climate-data/cloud-dataset-overview); [GES DISC: Cloud Water Path](https://disc.gsfc.nasa.gov/information/glossary?title=Cloud%20Water%20Path)
diff --git a/config/default/common/config/metadata/layers/modis/terra/MODIS_Terra_L3_Ice_Surface_Temp_Daily_Day.md b/config/default/common/config/metadata/layers/modis/terra/MODIS_Terra_L3_Ice_Surface_Temp_Daily_Day.md
index a2a5212749..281ec4cf72 100644
--- a/config/default/common/config/metadata/layers/modis/terra/MODIS_Terra_L3_Ice_Surface_Temp_Daily_Day.md
+++ b/config/default/common/config/metadata/layers/modis/terra/MODIS_Terra_L3_Ice_Surface_Temp_Daily_Day.md
@@ -2,4 +2,4 @@ The Ice Surface Temperature (L3, Daily, Day) layer shows daily, daytime ice surf
The Moderate Resolution Imaging Spectroradiometer (MODIS) is a 36-band visible to thermal-infrared sensor onboard the Terra and Aqua satellites. Two of the bands are imaged at a nominal resolution of 250 m at nadir, five bands at 500 m, and the remaining bands at 1000 m.
-References: MOD29P1D [doi:110.5067/MODIS/MOD29P1D.061](https://doi.org/10.5067/MODIS/MOD29P1D.061)
+References: MOD29P1D [doi:10.5067/MODIS/MOD29P1D.061](https://doi.org/10.5067/MODIS/MOD29P1D.061)
diff --git a/config/default/common/config/metadata/layers/multi-mission/hls/HLS_MGRS_Granule_Grid.md b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_MGRS_Granule_Grid.md
index cbee9224fd..16ec9520ec 100644
--- a/config/default/common/config/metadata/layers/multi-mission/hls/HLS_MGRS_Granule_Grid.md
+++ b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_MGRS_Granule_Grid.md
@@ -4,4 +4,4 @@ The UTM system divides the Earth’s surface into 60 longitude zones, each 6° o
The MGRS/HLS Grid layer is a reference layer and does not change over time.
-References: [Harmonized Landsat Sentinel-2 (HLS) Product User Guide](https://lpdaac.usgs.gov/documents/1326/HLS_User_Guide_V2.pdf)
+References: [Harmonized Landsat Sentinel-2 (HLS) Product User Guide](https://lpdaac.usgs.gov/documents/1698/HLS_User_Guide_V2.pdf)
diff --git a/config/default/common/config/metadata/layers/multi-mission/hls/Reflectance.md b/config/default/common/config/metadata/layers/multi-mission/hls/Reflectance.md
index 3010e03609..765496deb4 100644
--- a/config/default/common/config/metadata/layers/multi-mission/hls/Reflectance.md
+++ b/config/default/common/config/metadata/layers/multi-mission/hls/Reflectance.md
@@ -1,5 +1,5 @@
### About HLS
The Harmonized Landsat and Sentinel-2 (HLS) project provides consistent surface reflectance data from the Operational Land Imager (OLI) aboard the joint NASA/USGS Landsat 8 and 9 satellites and the Multi-Spectral Instrument (MSI) aboard the European Union’s Copernicus Sentinel-2A and Sentinel-2B satellites. The combined measurements between Landsat 8, Landsat 9, Sentinel-2A, and Sentinel-2B enable global observations of the land every 2-3 days at 30 meter (m) spatial resolution. The HLS project uses a set of algorithms to obtain seamless products from OLI and MSI that include atmospheric correction, cloud and cloud-shadow masking, spatial co-registration and common gridding, illumination and view angle normalization, and spectral bandpass adjustment.
-References: [Harmonized Landsat Sentinel-2 (HLS) Product User Guide](https://lpdaac.usgs.gov/documents/1326/HLS_User_Guide_V2.pdf)
+References: [Harmonized Landsat Sentinel-2 (HLS) Product User Guide](https://lpdaac.usgs.gov/documents/1698/HLS_User_Guide_V2.pdf)
diff --git a/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Brightness_Temp_Aft_H.md b/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Brightness_Temp_Aft_H.md
index 4977c8b484..90dc654d18 100644
--- a/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Brightness_Temp_Aft_H.md
+++ b/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Brightness_Temp_Aft_H.md
@@ -2,6 +2,6 @@ The Soil Moisture Active Passive (SMAP) "Uncorrected Brightness Temperature 36 k
The SMAP spacecraft carries two instruments, a radar (active) and a radiometer (passive), that together make global measurements of land surface soil moisture and freeze/thaw state. It is useful for monitoring and predicting natural hazards such as floods and droughts, understanding the linkages between Earth’s water, energy and carbon cycles, and reducing uncertainties in predicting weather and climate.
-References: SPL1CTB [doi: 10.5067/JJ5FL7FRLKJI](https://doi.org/10.5067/JJ5FL7FRLKJI)
+References: SPL1CTB [doi:10.5067/DV7IX2DQ681Y](https://doi.org/10.5067/DV7IX2DQ681Y)
Data field: `cell_tb_h_aft`
diff --git a/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Brightness_Temp_Aft_H_QA.md b/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Brightness_Temp_Aft_H_QA.md
index 5c0129f46e..a0aa42c743 100644
--- a/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Brightness_Temp_Aft_H_QA.md
+++ b/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Brightness_Temp_Aft_H_QA.md
@@ -2,6 +2,6 @@ The Soil Moisture Active Passive (SMAP) "Uncorrected Brightness Temperature 36 k
Within the image, green indicates that TB observations have acceptable quality for science use, yellow indicates that caution should be used with the TB observations as one or more quality-impacting conditions have been identified, and red indicates that TB observations are flagged as bad due to unacceptable quality.
-References: SPL1CTB [doi: 10.5067/JJ5FL7FRLKJI](https://doi.org/10.5067/JJ5FL7FRLKJI)
+References: SPL1CTB [doi:10.5067/DV7IX2DQ681Y](https://doi.org/10.5067/DV7IX2DQ681Y)
Data field: `cell_tb_qual_flag_h_aft`
diff --git a/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Brightness_Temp_Aft_H_RFI.md b/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Brightness_Temp_Aft_H_RFI.md
index 43af858625..0efef9403f 100644
--- a/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Brightness_Temp_Aft_H_RFI.md
+++ b/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Brightness_Temp_Aft_H_RFI.md
@@ -2,6 +2,6 @@ The Soil Moisture Active Passive (SMAP) "Uncorrected Brightness Temperature 36 k
Within the image, green indicates that TB observations are free of RFI and approved for science use, yellow indicates that caution should be used with the TB observations as RFI was detected but mitigated, and red indicates that TB observations are flagged as bad due to RFI.
-References: SPL1CTB [doi: 10.5067/JJ5FL7FRLKJI](https://doi.org/10.5067/JJ5FL7FRLKJI)
+References: SPL1CTB [doi:10.5067/DV7IX2DQ681Y](https://doi.org/10.5067/DV7IX2DQ681Y)
Data field: `cell_tb_qual_flag_h_aft`
diff --git a/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Brightness_Temp_Aft_V.md b/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Brightness_Temp_Aft_V.md
index f69fd514f2..6f4db04378 100644
--- a/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Brightness_Temp_Aft_V.md
+++ b/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Brightness_Temp_Aft_V.md
@@ -2,6 +2,6 @@ The Soil Moisture Active Passive (SMAP) "Uncorrected Brightness Temperature 36 k
The SMAP spacecraft carries two instruments, a radar (active) and a radiometer (passive), that together make global measurements of land surface soil moisture and freeze/thaw state. It is useful for monitoring and predicting natural hazards such as floods and droughts, understanding the linkages between Earth’s water, energy and carbon cycles, and reducing uncertainties in predicting weather and climate.
-References: SPL1CTB [doi: 10.5067/JJ5FL7FRLKJI](https://doi.org/10.5067/JJ5FL7FRLKJI)
+References: SPL1CTB [doi:10.5067/DV7IX2DQ681Y](https://doi.org/10.5067/DV7IX2DQ681Y)
Data field: `cell_tb_v_aft`
diff --git a/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Brightness_Temp_Aft_V_QA.md b/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Brightness_Temp_Aft_V_QA.md
index 4fa9ccf971..2c65786e0f 100644
--- a/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Brightness_Temp_Aft_V_QA.md
+++ b/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Brightness_Temp_Aft_V_QA.md
@@ -2,6 +2,6 @@ The Soil Moisture Active Passive (SMAP) "Uncorrected Brightness Temperature 36 k
Within the image, green indicates that TB observations have acceptable quality for science use, yellow indicates that caution should be used with the TB observations as one or more quality-impacting conditions have been identified, and red indicates that TB observations are flagged as bad due to unacceptable quality.
-References: SPL1CTB [doi: 10.5067/JJ5FL7FRLKJI](https://doi.org/10.5067/JJ5FL7FRLKJI)
+References: SPL1CTB [doi:10.5067/DV7IX2DQ681Y](https://doi.org/10.5067/DV7IX2DQ681Y)
Data field: `cell_tb_qual_flag_v_aft`
diff --git a/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Brightness_Temp_Aft_V_RFI.md b/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Brightness_Temp_Aft_V_RFI.md
index b68bbce558..0bfa262c4f 100644
--- a/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Brightness_Temp_Aft_V_RFI.md
+++ b/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Brightness_Temp_Aft_V_RFI.md
@@ -2,6 +2,6 @@ The Soil Moisture Active Passive (SMAP) "Uncorrected Brightness Temperature 36 k
Within the image, green indicates that TB observations are free of RFI and approved for science use, yellow indicates that caution should be used with the TB observations as RFI was detected but mitigated, and red indicates that TB observations are flagged as bad due to RFI.
-References: SPL1CTB [doi: 10.5067/JJ5FL7FRLKJI](https://doi.org/10.5067/JJ5FL7FRLKJI)
+References: SPL1CTB [doi:10.5067/DV7IX2DQ681Y](https://doi.org/10.5067/DV7IX2DQ681Y)
Data field: `cell_tb_qual_flag_v_aft`
diff --git a/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Brightness_Temp_Fore_H.md b/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Brightness_Temp_Fore_H.md
index 12315abd1b..f91f3df69c 100644
--- a/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Brightness_Temp_Fore_H.md
+++ b/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Brightness_Temp_Fore_H.md
@@ -2,6 +2,6 @@ The Soil Moisture Active Passive (SMAP) "Uncorrected Brightness Temperature 36 k
The SMAP spacecraft carries two instruments, a radar (active) and a radiometer (passive), that together make global measurements of land surface soil moisture and freeze/thaw state. It is useful for monitoring and predicting natural hazards such as floods and droughts, understanding the linkages between Earth’s water, energy and carbon cycles, and reducing uncertainties in predicting weather and climate.
-References: SPL1CTB [doi: 10.5067/JJ5FL7FRLKJI](https://doi.org/10.5067/JJ5FL7FRLKJI)
+References: SPL1CTB [doi:10.5067/DV7IX2DQ681Y](https://doi.org/10.5067/DV7IX2DQ681Y)
Data field: `cell_tb_h_fore`
diff --git a/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Brightness_Temp_Fore_H_QA.md b/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Brightness_Temp_Fore_H_QA.md
index fc891e50c8..b6e71e98f0 100644
--- a/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Brightness_Temp_Fore_H_QA.md
+++ b/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Brightness_Temp_Fore_H_QA.md
@@ -2,6 +2,6 @@ The Soil Moisture Active Passive (SMAP) "Uncorrected Brightness Temperature 36 k
Within the image, green indicates that TB observations have acceptable quality for science use, yellow indicates that caution should be used with the TB observations as one or more quality-impacting conditions have been identified, and red indicates that TB observations are flagged as bad due to unacceptable quality.
-References: SPL1CTB [doi: 10.5067/JJ5FL7FRLKJI](https://doi.org/10.5067/JJ5FL7FRLKJI)
+References: SPL1CTB [doi:10.5067/DV7IX2DQ681Y](https://doi.org/10.5067/DV7IX2DQ681Y)
Data field: `cell_tb_qual_flag_h_fore`
diff --git a/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Brightness_Temp_Fore_H_RFI.md b/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Brightness_Temp_Fore_H_RFI.md
index 60f1ccc187..835daf9e4f 100644
--- a/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Brightness_Temp_Fore_H_RFI.md
+++ b/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Brightness_Temp_Fore_H_RFI.md
@@ -2,6 +2,6 @@ The Soil Moisture Active Passive (SMAP) "Uncorrected Brightness Temperature 36 k
Within the image, green indicates that TB observations are free of RFI and approved for science use, yellow indicates that caution should be used with the TB observations as RFI was detected but mitigated, and red indicates that TB observations are flagged as bad due to RFI.
-References: SPL1CTB [doi: 10.5067/JJ5FL7FRLKJI](https://doi.org/10.5067/JJ5FL7FRLKJI)
+References: SPL1CTB [doi:10.5067/DV7IX2DQ681Y](https://doi.org/10.5067/DV7IX2DQ681Y)
Data field: `cell_tb_qual_flag_h_fore`
diff --git a/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Brightness_Temp_Fore_V.md b/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Brightness_Temp_Fore_V.md
index 972ad4833a..454aed6c20 100644
--- a/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Brightness_Temp_Fore_V.md
+++ b/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Brightness_Temp_Fore_V.md
@@ -2,6 +2,6 @@ The Soil Moisture Active Passive (SMAP) "Uncorrected Brightness Temperature 36 k
The SMAP spacecraft carries two instruments, a radar (active) and a radiometer (passive), that together make global measurements of land surface soil moisture and freeze/thaw state. It is useful for monitoring and predicting natural hazards such as floods and droughts, understanding the linkages between Earth’s water, energy and carbon cycles, and reducing uncertainties in predicting weather and climate.
-References: SPL1CTB [doi: 10.5067/JJ5FL7FRLKJI](https://doi.org/10.5067/JJ5FL7FRLKJI)
+References: SPL1CTB [doi:10.5067/DV7IX2DQ681Y](https://doi.org/10.5067/DV7IX2DQ681Y)
Data field: `cell_tb_v_fore`
diff --git a/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Brightness_Temp_Fore_V_QA.md b/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Brightness_Temp_Fore_V_QA.md
index 92cdd552bf..913105f7b8 100644
--- a/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Brightness_Temp_Fore_V_QA.md
+++ b/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Brightness_Temp_Fore_V_QA.md
@@ -2,6 +2,6 @@ The Soil Moisture Active Passive (SMAP) "Uncorrected Brightness Temperature 36 k
Within the image, green indicates that TB observations have acceptable quality for science use, yellow indicates that caution should be used with the TB observations as one or more quality-impacting conditions have been identified, and red indicates that TB observations are flagged as bad due to unacceptable quality.
-References: SPL1CTB [doi: 10.5067/JJ5FL7FRLKJI](https://doi.org/10.5067/JJ5FL7FRLKJI)
+References: SPL1CTB [doi:10.5067/DV7IX2DQ681Y](https://doi.org/10.5067/DV7IX2DQ681Y)
Data field: `cell_tb_qual_flag_v_fore`
diff --git a/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Brightness_Temp_Fore_V_RFI.md b/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Brightness_Temp_Fore_V_RFI.md
index 6cf0cc7f2d..6d5a0a1929 100644
--- a/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Brightness_Temp_Fore_V_RFI.md
+++ b/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Brightness_Temp_Fore_V_RFI.md
@@ -2,6 +2,6 @@ The Soil Moisture Active Passive (SMAP) "Uncorrected Brightness Temperature 36 k
Within the image, green indicates that TB observations are free of RFI and approved for science use, yellow indicates that caution should be used with the TB observations as RFI was detected but mitigated, and red indicates that TB observations are flagged as bad due to RFI.
-References: SPL1CTB [doi: 10.5067/JJ5FL7FRLKJI](https://doi.org/10.5067/JJ5FL7FRLKJI)
+References: SPL1CTB [doi:10.5067/DV7IX2DQ681Y](https://doi.org/10.5067/DV7IX2DQ681Y)
Data field: `cell_tb_qual_flag_v_fore`
diff --git a/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Enhanced_Brightness_Temp_Aft_H.md b/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Enhanced_Brightness_Temp_Aft_H.md
index e40ecb89b3..caa210dc84 100644
--- a/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Enhanced_Brightness_Temp_Aft_H.md
+++ b/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Enhanced_Brightness_Temp_Aft_H.md
@@ -2,6 +2,6 @@ The Soil Moisture Active Passive (SMAP) "Uncorrected Brightness Temperature 9 km
The SMAP spacecraft carries two instruments, a radar (active) and a radiometer (passive), that together make global measurements of land surface soil moisture and freeze/thaw state. It is useful for monitoring and predicting natural hazards such as floods and droughts, understanding the linkages between Earth’s water, energy and carbon cycles, and reducing uncertainties in predicting weather and climate.
-References: SPL1CTB_E [doi:10.5067/XB8K63YM4U8O](https://doi.org/10.5067/XB8K63YM4U8O)
+References: SPL1CTB_E [doi:10.5067/99LHDR3NUM47](https://dx.doi.org/10.5067/99LHDR3NUM47)
Data field: `cell_tb_h_aft`
diff --git a/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Enhanced_Brightness_Temp_Aft_H_QA.md b/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Enhanced_Brightness_Temp_Aft_H_QA.md
index ac9bbecb4d..e2f462d494 100644
--- a/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Enhanced_Brightness_Temp_Aft_H_QA.md
+++ b/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Enhanced_Brightness_Temp_Aft_H_QA.md
@@ -2,6 +2,6 @@ The Soil Moisture Active Passive (SMAP) "Uncorrected Brightness Temperature 9 km
Within the image, green indicates that TB observations have acceptable quality for science use, yellow indicates that caution should be used with the TB observations as one or more quality-impacting conditions have been identified, and red indicates that TB observations are flagged as bad due to unacceptable quality.
-References: SPL1CTB_E [doi:10.5067/XB8K63YM4U8O](https://doi.org/10.5067/XB8K63YM4U8O)
+References: SPL1CTB_E [doi:10.5067/99LHDR3NUM47](https://dx.doi.org/10.5067/99LHDR3NUM47)
Data field: `cell_tb_qual_flag_h_aft`
diff --git a/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Enhanced_Brightness_Temp_Aft_H_RFI.md b/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Enhanced_Brightness_Temp_Aft_H_RFI.md
index 80ea3fc30c..69a3496c43 100644
--- a/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Enhanced_Brightness_Temp_Aft_H_RFI.md
+++ b/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Enhanced_Brightness_Temp_Aft_H_RFI.md
@@ -2,6 +2,6 @@ The Soil Moisture Active Passive (SMAP) "Uncorrected Brightness Temperature 9 km
Within the image, green indicates that TB observations are free of RFI and approved for science use, yellow indicates that caution should be used with the TB observations as RFI was detected but mitigated, and red indicates that TB observations are flagged as bad due to RFI.
-References: SPL1CTB_E [doi:10.5067/XB8K63YM4U8O](https://doi.org/10.5067/XB8K63YM4U8O)
+References: SPL1CTB_E [doi:10.5067/99LHDR3NUM47](https://dx.doi.org/10.5067/99LHDR3NUM47)
Data field: `cell_tb_qual_flag_h_aft`
diff --git a/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Enhanced_Brightness_Temp_Aft_V.md b/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Enhanced_Brightness_Temp_Aft_V.md
index c8def889d1..de500d73ad 100644
--- a/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Enhanced_Brightness_Temp_Aft_V.md
+++ b/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Enhanced_Brightness_Temp_Aft_V.md
@@ -2,6 +2,6 @@ The Soil Moisture Active Passive (SMAP) "Uncorrected Brightness Temperature 9 km
The SMAP spacecraft carries two instruments, a radar (active) and a radiometer (passive), that together make global measurements of land surface soil moisture and freeze/thaw state. It is useful for monitoring and predicting natural hazards such as floods and droughts, understanding the linkages between Earth’s water, energy and carbon cycles, and reducing uncertainties in predicting weather and climate.
-References: SPL1CTB_E [doi:10.5067/XB8K63YM4U8O](https://doi.org/10.5067/XB8K63YM4U8O)
+References: SPL1CTB_E [doi:10.5067/99LHDR3NUM47](https://dx.doi.org/10.5067/99LHDR3NUM47)
Data field: `cell_tb_v_aft`
diff --git a/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Enhanced_Brightness_Temp_Aft_V_QA.md b/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Enhanced_Brightness_Temp_Aft_V_QA.md
index f927aa2c18..64d39fd300 100644
--- a/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Enhanced_Brightness_Temp_Aft_V_QA.md
+++ b/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Enhanced_Brightness_Temp_Aft_V_QA.md
@@ -2,6 +2,6 @@ The Soil Moisture Active Passive (SMAP) "Uncorrected Brightness Temperature 9 km
Within the image, green indicates that TB observations have acceptable quality for science use, yellow indicates that caution should be used with the TB observations as one or more quality-impacting conditions have been identified, and red indicates that TB observations are flagged as bad due to unacceptable quality.
-References: SPL1CTB_E [doi:10.5067/XB8K63YM4U8O](https://doi.org/10.5067/XB8K63YM4U8O)
+References: SPL1CTB_E [doi:10.5067/99LHDR3NUM47](https://dx.doi.org/10.5067/99LHDR3NUM47)
Data field: `cell_tb_qual_flag_v_aft`
diff --git a/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Enhanced_Brightness_Temp_Aft_V_RFI.md b/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Enhanced_Brightness_Temp_Aft_V_RFI.md
index 3f02c4cf7e..f430583d15 100644
--- a/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Enhanced_Brightness_Temp_Aft_V_RFI.md
+++ b/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Enhanced_Brightness_Temp_Aft_V_RFI.md
@@ -2,6 +2,6 @@ The Soil Moisture Active Passive (SMAP) "Uncorrected Brightness Temperature 9 km
Within the image, green indicates that TB observations are free of RFI and approved for science use, yellow indicates that caution should be used with the TB observations as RFI was detected but mitigated, and red indicates that TB observations are flagged as bad due to RFI.
-References: SPL1CTB_E [doi:10.5067/XB8K63YM4U8O](https://doi.org/10.5067/XB8K63YM4U8O)
+References: SPL1CTB_E [doi:10.5067/99LHDR3NUM47](https://dx.doi.org/10.5067/99LHDR3NUM47)
Data field: `cell_tb_qual_flag_v_aft`
diff --git a/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Enhanced_Brightness_Temp_Fore_H.md b/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Enhanced_Brightness_Temp_Fore_H.md
index fc6fa74809..10cace5b31 100644
--- a/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Enhanced_Brightness_Temp_Fore_H.md
+++ b/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Enhanced_Brightness_Temp_Fore_H.md
@@ -2,6 +2,6 @@ The Soil Moisture Active Passive (SMAP) "Uncorrected Brightness Temperature 9 km
The SMAP spacecraft carries two instruments, a radar (active) and a radiometer (passive), that together make global measurements of land surface soil moisture and freeze/thaw state. It is useful for monitoring and predicting natural hazards such as floods and droughts, understanding the linkages between Earth’s water, energy and carbon cycles, and reducing uncertainties in predicting weather and climate.
-References: SPL1CTB_E [doi:10.5067/XB8K63YM4U8O](https://doi.org/10.5067/XB8K63YM4U8O)
+References: SPL1CTB_E [doi:10.5067/99LHDR3NUM47](https://dx.doi.org/10.5067/99LHDR3NUM47)
Data field: `cell_tb_h_fore`
diff --git a/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Enhanced_Brightness_Temp_Fore_H_QA.md b/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Enhanced_Brightness_Temp_Fore_H_QA.md
index cf31d3d92a..3e781f8538 100644
--- a/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Enhanced_Brightness_Temp_Fore_H_QA.md
+++ b/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Enhanced_Brightness_Temp_Fore_H_QA.md
@@ -2,6 +2,6 @@ The Soil Moisture Active Passive (SMAP) "Uncorrected Brightness Temperature 9 km
Within the image, green indicates that TB observations have acceptable quality for science use, yellow indicates that caution should be used with the TB observations as one or more quality-impacting conditions have been identified, and red indicates that TB observations are flagged as bad due to unacceptable quality.
-References: SPL1CTB_E [doi:10.5067/XB8K63YM4U8O](https://doi.org/10.5067/XB8K63YM4U8O)
+References: SPL1CTB_E [doi:10.5067/99LHDR3NUM47](https://dx.doi.org/10.5067/99LHDR3NUM47)
Data field: `cell_tb_qual_flag_h_fore`
diff --git a/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Enhanced_Brightness_Temp_Fore_H_RFI.md b/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Enhanced_Brightness_Temp_Fore_H_RFI.md
index 0a5df8ef57..1ec186fa48 100644
--- a/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Enhanced_Brightness_Temp_Fore_H_RFI.md
+++ b/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Enhanced_Brightness_Temp_Fore_H_RFI.md
@@ -2,6 +2,6 @@ The Soil Moisture Active Passive (SMAP) "Uncorrected Brightness Temperature 9 km
Within the image, green indicates that TB observations are free of RFI and approved for science use, yellow indicates that caution should be used with the TB observations as RFI was detected but mitigated, and red indicates that TB observations are flagged as bad due to RFI.
-References: SPL1CTB_E [doi:10.5067/XB8K63YM4U8O](https://doi.org/10.5067/XB8K63YM4U8O)
+References: SPL1CTB_E [doi:10.5067/99LHDR3NUM47](https://dx.doi.org/10.5067/99LHDR3NUM47)
Data field: `cell_tb_qual_flag_h_fore`
diff --git a/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Enhanced_Brightness_Temp_Fore_V.md b/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Enhanced_Brightness_Temp_Fore_V.md
index a5e5b58600..b96910d4f2 100644
--- a/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Enhanced_Brightness_Temp_Fore_V.md
+++ b/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Enhanced_Brightness_Temp_Fore_V.md
@@ -2,6 +2,6 @@ The Soil Moisture Active Passive (SMAP) "Uncorrected Brightness Temperature 9 km
The SMAP spacecraft carries two instruments, a radar (active) and a radiometer (passive), that together make global measurements of land surface soil moisture and freeze/thaw state. It is useful for monitoring and predicting natural hazards such as floods and droughts, understanding the linkages between Earth’s water, energy and carbon cycles, and reducing uncertainties in predicting weather and climate.
-References: SPL1CTB_E [doi:10.5067/XB8K63YM4U8O](https://doi.org/10.5067/XB8K63YM4U8O)
+References: SPL1CTB_E [doi:10.5067/99LHDR3NUM47](https://dx.doi.org/10.5067/99LHDR3NUM47)
Data field: `cell_tb_v_fore`
diff --git a/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Enhanced_Brightness_Temp_Fore_V_QA.md b/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Enhanced_Brightness_Temp_Fore_V_QA.md
index 53e8858072..3df0c164bb 100644
--- a/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Enhanced_Brightness_Temp_Fore_V_QA.md
+++ b/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Enhanced_Brightness_Temp_Fore_V_QA.md
@@ -2,6 +2,6 @@ The Soil Moisture Active Passive (SMAP) "Uncorrected Brightness Temperature 9 km
Within the image, green indicates that TB observations have acceptable quality for science use, yellow indicates that caution should be used with the TB observations as one or more quality-impacting conditions have been identified, and red indicates that TB observations are flagged as bad due to unacceptable quality.
-References: SPL1CTB_E [doi:10.5067/XB8K63YM4U8O](https://doi.org/10.5067/XB8K63YM4U8O)
+References: SPL1CTB_E [doi:10.5067/99LHDR3NUM47](https://dx.doi.org/10.5067/99LHDR3NUM47)
Data field: `cell_tb_qual_flag_v_fore`
diff --git a/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Enhanced_Brightness_Temp_Fore_V_RFI.md b/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Enhanced_Brightness_Temp_Fore_V_RFI.md
index 1268dfe142..04a2b89fb4 100644
--- a/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Enhanced_Brightness_Temp_Fore_V_RFI.md
+++ b/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Enhanced_Brightness_Temp_Fore_V_RFI.md
@@ -2,6 +2,6 @@ The Soil Moisture Active Passive (SMAP) "Uncorrected Brightness Temperature 9 km
Within the image, green indicates that TB observations are free of RFI and approved for science use, yellow indicates that caution should be used with the TB observations as RFI was detected but mitigated, and red indicates that TB observations are flagged as bad due to RFI.
-References: SPL1CTB_E [doi:10.5067/XB8K63YM4U8O](https://doi.org/10.5067/XB8K63YM4U8O)
+References: SPL1CTB_E [doi:10.5067/99LHDR3NUM47](https://dx.doi.org/10.5067/99LHDR3NUM47)
Data field: `cell_tb_qual_flag_v_fore`
diff --git a/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Faraday_Rotation_Aft.md b/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Faraday_Rotation_Aft.md
index 5037e7a7a8..f017457974 100644
--- a/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Faraday_Rotation_Aft.md
+++ b/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Faraday_Rotation_Aft.md
@@ -4,4 +4,4 @@ The SMAP spacecraft carries two instruments, a radar (active) and a radiometer (
Data field: `faraday_rotation_angle`
-References: SPL1BTB_NRT [doi:10.5067/UH70WUPQKCFR](https://doi.org/10.5067/UH70WUPQKCFR); SPL1BTB [doi:10.5067/ZHHBN1KQLI20](https://doi.org/10.5067/ZHHBN1KQLI20)
\ No newline at end of file
+References: SPL1BTB_NRT [doi:10.5067/UH70WUPQKCFR](https://doi.org/10.5067/UH70WUPQKCFR); SPL1BTB [doi:10.5067/GWYQTF307Y9Y](https://doi.org/10.5067/GWYQTF307Y9Y)
\ No newline at end of file
diff --git a/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Faraday_Rotation_Fore.md b/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Faraday_Rotation_Fore.md
index 334342e1b7..ce7c85603c 100644
--- a/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Faraday_Rotation_Fore.md
+++ b/config/default/common/config/metadata/layers/smap/SMAP_L1_Passive_Faraday_Rotation_Fore.md
@@ -4,4 +4,4 @@ The SMAP spacecraft carries two instruments, a radar (active) and a radiometer (
Data field: `faraday_rotation_angle`
-References: SPL1BTB_NRT [doi:10.5067/UH70WUPQKCFR](https://doi.org/10.5067/UH70WUPQKCFR); SPL1BTB [doi:10.5067/ZHHBN1KQLI20](https://doi.org/10.5067/ZHHBN1KQLI20)
\ No newline at end of file
+References: SPL1BTB_NRT [doi:10.5067/UH70WUPQKCFR](https://doi.org/10.5067/UH70WUPQKCFR); SPL1BTB [doi:10.5067/GWYQTF307Y9Y](https://doi.org/10.5067/GWYQTF307Y9Y)
\ No newline at end of file
diff --git a/config/default/common/config/metadata/layers/smap/SMAP_L2_Passive_Day_Soil_Moisture_Option1.md b/config/default/common/config/metadata/layers/smap/SMAP_L2_Passive_Day_Soil_Moisture_Option1.md
index 4ae92a5bbd..7618a3d935 100644
--- a/config/default/common/config/metadata/layers/smap/SMAP_L2_Passive_Day_Soil_Moisture_Option1.md
+++ b/config/default/common/config/metadata/layers/smap/SMAP_L2_Passive_Day_Soil_Moisture_Option1.md
@@ -4,4 +4,4 @@ The SMAP spacecraft carries two instruments, a radar (active) and a radiometer (
Data field: `soil_moisture_option1`
-References: SPL2SMP_NRT [doi:10.5067/NCTT8THPWRTL](https://doi.org/10.5067/NCTT8THPWRTL); SPL2SMP [doi:10.5067/LPJ8F0TAK6E0](https://doi.org/10.5067/LPJ8F0TAK6E0)
+References: SPL2SMP_NRT [doi:10.5067/NCTT8THPWRTL](https://doi.org/10.5067/NCTT8THPWRTL); SPL2SMP [doi:10.5067/K7Y2D8QQVZ4L](https://doi.org/10.5067/K7Y2D8QQVZ4L)
diff --git a/config/default/common/config/metadata/layers/smap/SMAP_L2_Passive_Day_Soil_Moisture_Option2.md b/config/default/common/config/metadata/layers/smap/SMAP_L2_Passive_Day_Soil_Moisture_Option2.md
index 64223604bf..4581752aa3 100644
--- a/config/default/common/config/metadata/layers/smap/SMAP_L2_Passive_Day_Soil_Moisture_Option2.md
+++ b/config/default/common/config/metadata/layers/smap/SMAP_L2_Passive_Day_Soil_Moisture_Option2.md
@@ -4,5 +4,5 @@ The SMAP spacecraft carries two instruments, a radar (active) and a radiometer (
Data field: `soil_moisture_option2`
-References: SPL2SMP_NRT [doi:10.5067/NCTT8THPWRTL](https://doi.org/10.5067/NCTT8THPWRTL); SPL2SMP [doi:10.5067/LPJ8F0TAK6E0](https://doi.org/10.5067/LPJ8F0TAK6E0)
+References: SPL2SMP_NRT [doi:10.5067/NCTT8THPWRTL](https://doi.org/10.5067/NCTT8THPWRTL); SPL2SMP [doi:10.5067/K7Y2D8QQVZ4L](https://doi.org/10.5067/K7Y2D8QQVZ4L)
diff --git a/config/default/common/config/metadata/layers/smap/SMAP_L2_Passive_Day_Soil_Moisture_Option3.md b/config/default/common/config/metadata/layers/smap/SMAP_L2_Passive_Day_Soil_Moisture_Option3.md
index caae007dc5..891ab9c7d4 100644
--- a/config/default/common/config/metadata/layers/smap/SMAP_L2_Passive_Day_Soil_Moisture_Option3.md
+++ b/config/default/common/config/metadata/layers/smap/SMAP_L2_Passive_Day_Soil_Moisture_Option3.md
@@ -4,5 +4,5 @@ The SMAP spacecraft carries two instruments, a radar (active) and a radiometer (
Data field: `soil_moisture_option3`
-References: SPL2SMP_NRT [doi:10.5067/NCTT8THPWRTL](https://doi.org/10.5067/NCTT8THPWRTL); SPL2SMP [doi:10.5067/LPJ8F0TAK6E0](https://doi.org/10.5067/LPJ8F0TAK6E0)
+References: SPL2SMP_NRT [doi:10.5067/NCTT8THPWRTL](https://doi.org/10.5067/NCTT8THPWRTL); SPL2SMP [doi:10.5067/K7Y2D8QQVZ4L](https://doi.org/10.5067/K7Y2D8QQVZ4L)
diff --git a/config/default/common/config/metadata/layers/smap/SMAP_L2_Passive_Enhanced_Day_Soil_Moisture_Option1.md b/config/default/common/config/metadata/layers/smap/SMAP_L2_Passive_Enhanced_Day_Soil_Moisture_Option1.md
index b9f7097e6e..4c64c17863 100644
--- a/config/default/common/config/metadata/layers/smap/SMAP_L2_Passive_Enhanced_Day_Soil_Moisture_Option1.md
+++ b/config/default/common/config/metadata/layers/smap/SMAP_L2_Passive_Enhanced_Day_Soil_Moisture_Option1.md
@@ -4,4 +4,4 @@ The SMAP spacecraft carries two instruments, a radar (active) and a radiometer (
Data field: `soil_moisture_option1`
-References: SPL2SMP_E [doi:10.5067/LOT311EZHH8S](https://doi.org/10.5067/LOT311EZHH8S)
+References: SPL2SMP_E [doi:10.5067/BN36FXOMMC4C](https://doi.org/10.5067/BN36FXOMMC4C)
diff --git a/config/default/common/config/metadata/layers/smap/SMAP_L2_Passive_Enhanced_Day_Soil_Moisture_Option2.md b/config/default/common/config/metadata/layers/smap/SMAP_L2_Passive_Enhanced_Day_Soil_Moisture_Option2.md
index daf39396d3..a62b9fa961 100644
--- a/config/default/common/config/metadata/layers/smap/SMAP_L2_Passive_Enhanced_Day_Soil_Moisture_Option2.md
+++ b/config/default/common/config/metadata/layers/smap/SMAP_L2_Passive_Enhanced_Day_Soil_Moisture_Option2.md
@@ -4,4 +4,4 @@ The SMAP spacecraft carries two instruments, a radar (active) and a radiometer (
Data field: `soil_moisture_option2`
-References: SPL2SMP_E [doi:10.5067/LOT311EZHH8S](https://doi.org/10.5067/LOT311EZHH8S)
+References: SPL2SMP_E [doi:10.5067/BN36FXOMMC4C](https://doi.org/10.5067/BN36FXOMMC4C)
diff --git a/config/default/common/config/metadata/layers/smap/SMAP_L2_Passive_Enhanced_Day_Soil_Moisture_Option3.md b/config/default/common/config/metadata/layers/smap/SMAP_L2_Passive_Enhanced_Day_Soil_Moisture_Option3.md
index fe3ed26761..f26006e6f4 100644
--- a/config/default/common/config/metadata/layers/smap/SMAP_L2_Passive_Enhanced_Day_Soil_Moisture_Option3.md
+++ b/config/default/common/config/metadata/layers/smap/SMAP_L2_Passive_Enhanced_Day_Soil_Moisture_Option3.md
@@ -4,4 +4,4 @@ The SMAP spacecraft carries two instruments, a radar (active) and a radiometer (
Data field: `soil_moisture_option3`
-References: SPL2SMP_E [doi:10.5067/LOT311EZHH8S](https://doi.org/10.5067/LOT311EZHH8S)
+References: SPL2SMP_E [doi:10.5067/BN36FXOMMC4C](https://doi.org/10.5067/BN36FXOMMC4C)
diff --git a/config/default/common/config/metadata/layers/smap/SMAP_L2_Passive_Enhanced_Night_Soil_Moisture_Option1.md b/config/default/common/config/metadata/layers/smap/SMAP_L2_Passive_Enhanced_Night_Soil_Moisture_Option1.md
index e0f65f4f72..dd012df5da 100644
--- a/config/default/common/config/metadata/layers/smap/SMAP_L2_Passive_Enhanced_Night_Soil_Moisture_Option1.md
+++ b/config/default/common/config/metadata/layers/smap/SMAP_L2_Passive_Enhanced_Night_Soil_Moisture_Option1.md
@@ -4,4 +4,4 @@ The SMAP spacecraft carries two instruments, a radar (active) and a radiometer (
Data field: `soil_moisture_option1`
-References: SPL2SMP_E [doi:10.5067/LOT311EZHH8S](https://doi.org/10.5067/LOT311EZHH8S)
+References: SPL2SMP_E [doi:10.5067/BN36FXOMMC4C](https://doi.org/10.5067/BN36FXOMMC4C)
diff --git a/config/default/common/config/metadata/layers/smap/SMAP_L2_Passive_Enhanced_Night_Soil_Moisture_Option2.md b/config/default/common/config/metadata/layers/smap/SMAP_L2_Passive_Enhanced_Night_Soil_Moisture_Option2.md
index 463752a0d2..a4bb2d9dc0 100644
--- a/config/default/common/config/metadata/layers/smap/SMAP_L2_Passive_Enhanced_Night_Soil_Moisture_Option2.md
+++ b/config/default/common/config/metadata/layers/smap/SMAP_L2_Passive_Enhanced_Night_Soil_Moisture_Option2.md
@@ -4,4 +4,4 @@ The SMAP spacecraft carries two instruments, a radar (active) and a radiometer (
Data field: `soil_moisture_option2`
-References: SPL2SMP_E [doi:10.5067/LOT311EZHH8S](https://doi.org/10.5067/LOT311EZHH8S)
+References: SPL2SMP_E [doi:10.5067/BN36FXOMMC4C](https://doi.org/10.5067/BN36FXOMMC4C)
diff --git a/config/default/common/config/metadata/layers/smap/SMAP_L2_Passive_Enhanced_Night_Soil_Moisture_Option3.md b/config/default/common/config/metadata/layers/smap/SMAP_L2_Passive_Enhanced_Night_Soil_Moisture_Option3.md
index b202491a35..bd330da298 100644
--- a/config/default/common/config/metadata/layers/smap/SMAP_L2_Passive_Enhanced_Night_Soil_Moisture_Option3.md
+++ b/config/default/common/config/metadata/layers/smap/SMAP_L2_Passive_Enhanced_Night_Soil_Moisture_Option3.md
@@ -4,4 +4,4 @@ The SMAP spacecraft carries two instruments, a radar (active) and a radiometer (
Data field: `soil_moisture_option3`
-References: SPL2SMP_E [doi:10.5067/LOT311EZHH8S](https://doi.org/10.5067/LOT311EZHH8S)
+References: SPL2SMP_E [doi:10.5067/BN36FXOMMC4C](https://doi.org/10.5067/BN36FXOMMC4C)
diff --git a/config/default/common/config/metadata/layers/smap/SMAP_L2_Passive_Night_Soil_Moisture_Option1.md b/config/default/common/config/metadata/layers/smap/SMAP_L2_Passive_Night_Soil_Moisture_Option1.md
index ac691817f2..cb6c5b7213 100644
--- a/config/default/common/config/metadata/layers/smap/SMAP_L2_Passive_Night_Soil_Moisture_Option1.md
+++ b/config/default/common/config/metadata/layers/smap/SMAP_L2_Passive_Night_Soil_Moisture_Option1.md
@@ -4,7 +4,7 @@ The SMAP spacecraft carries two instruments, a radar (active) and a radiometer (
Data field: `soil_moisture_option1`
-References: SPL2SMP_NRT [doi:10.5067/NCTT8THPWRTL](https://doi.org/10.5067/NCTT8THPWRTL); SPL2SMP [doi:10.5067/LPJ8F0TAK6E0](https://doi.org/10.5067/LPJ8F0TAK6E0)
+References: SPL2SMP_NRT [doi:10.5067/NCTT8THPWRTL](https://doi.org/10.5067/NCTT8THPWRTL); SPL2SMP [doi:10.5067/K7Y2D8QQVZ4L](https://doi.org/10.5067/K7Y2D8QQVZ4L)
diff --git a/config/default/common/config/metadata/layers/smap/SMAP_L2_Passive_Night_Soil_Moisture_Option2.md b/config/default/common/config/metadata/layers/smap/SMAP_L2_Passive_Night_Soil_Moisture_Option2.md
index 2ed1946f9a..b7d639a806 100644
--- a/config/default/common/config/metadata/layers/smap/SMAP_L2_Passive_Night_Soil_Moisture_Option2.md
+++ b/config/default/common/config/metadata/layers/smap/SMAP_L2_Passive_Night_Soil_Moisture_Option2.md
@@ -4,5 +4,5 @@ The SMAP spacecraft carries two instruments, a radar (active) and a radiometer (
Data field: `soil_moisture_option2`
-References: SPL2SMP_NRT [doi:10.5067/NCTT8THPWRTL](https://doi.org/10.5067/NCTT8THPWRTL); SPL2SMP [doi:10.5067/LPJ8F0TAK6E0](https://doi.org/10.5067/LPJ8F0TAK6E0)
+References: SPL2SMP_NRT [doi:10.5067/NCTT8THPWRTL](https://doi.org/10.5067/NCTT8THPWRTL); SPL2SMP [doi:10.5067/K7Y2D8QQVZ4L](https://doi.org/10.5067/K7Y2D8QQVZ4L)
diff --git a/config/default/common/config/metadata/layers/smap/SMAP_L2_Passive_Night_Soil_Moisture_Option3.md b/config/default/common/config/metadata/layers/smap/SMAP_L2_Passive_Night_Soil_Moisture_Option3.md
index 8e401fa61f..590a3117af 100644
--- a/config/default/common/config/metadata/layers/smap/SMAP_L2_Passive_Night_Soil_Moisture_Option3.md
+++ b/config/default/common/config/metadata/layers/smap/SMAP_L2_Passive_Night_Soil_Moisture_Option3.md
@@ -4,5 +4,5 @@ The SMAP spacecraft carries two instruments, a radar (active) and a radiometer (
Data field: `soil_moisture_option3`
-References: SPL2SMP_NRT [doi:10.5067/NCTT8THPWRTL](https://doi.org/10.5067/NCTT8THPWRTL); SPL2SMP [doi:10.5067/LPJ8F0TAK6E0](https://doi.org/10.5067/LPJ8F0TAK6E0)
+References: SPL2SMP_NRT [doi:10.5067/NCTT8THPWRTL](https://doi.org/10.5067/NCTT8THPWRTL); SPL2SMP [doi:10.5067/K7Y2D8QQVZ4L](https://doi.org/10.5067/K7Y2D8QQVZ4L)
diff --git a/config/default/common/config/metadata/layers/smap/SMAP_L3_Passive_Brightness_Temp_H.md b/config/default/common/config/metadata/layers/smap/SMAP_L3_Passive_Brightness_Temp_H.md
index 28ee9040db..1f522a597a 100644
--- a/config/default/common/config/metadata/layers/smap/SMAP_L3_Passive_Brightness_Temp_H.md
+++ b/config/default/common/config/metadata/layers/smap/SMAP_L3_Passive_Brightness_Temp_H.md
@@ -6,6 +6,6 @@ The SMAP spacecraft carries two instruments, a radar (active) and a radiometer (
Data field: `tb_h_corrected`
-References: SPL3SMP [doi:10.5067/OMHVSRGFX38O](https://doi.org/10.5067/OMHVSRGFX38O)
+References: SPL3SMP [doi:10.5067/4XXOGX0OOW1S](https://doi.org/10.5067/4XXOGX0OOW1S)
diff --git a/config/default/common/config/metadata/layers/smap/SMAP_L3_Passive_Brightness_Temp_V.md b/config/default/common/config/metadata/layers/smap/SMAP_L3_Passive_Brightness_Temp_V.md
index 6e6ee3c566..a9aebafe2d 100644
--- a/config/default/common/config/metadata/layers/smap/SMAP_L3_Passive_Brightness_Temp_V.md
+++ b/config/default/common/config/metadata/layers/smap/SMAP_L3_Passive_Brightness_Temp_V.md
@@ -6,6 +6,6 @@ The SMAP spacecraft carries two instruments, a radar (active) and a radiometer (
Data field: `tb_v_corrected`
-References: SPL3SMP [doi:10.5067/OMHVSRGFX38O](https://doi.org/10.5067/OMHVSRGFX38O)
+References: SPL3SMP [doi:10.5067/4XXOGX0OOW1S](https://doi.org/10.5067/4XXOGX0OOW1S)
diff --git a/config/default/common/config/metadata/layers/smap/SMAP_L3_Passive_Day_Freeze_Thaw.md b/config/default/common/config/metadata/layers/smap/SMAP_L3_Passive_Day_Freeze_Thaw.md
index c1686ea7ba..7060fdc950 100644
--- a/config/default/common/config/metadata/layers/smap/SMAP_L3_Passive_Day_Freeze_Thaw.md
+++ b/config/default/common/config/metadata/layers/smap/SMAP_L3_Passive_Day_Freeze_Thaw.md
@@ -4,5 +4,5 @@ The SMAP spacecraft carries two instruments, a radar (active) and a radiometer (
Data field: `freeze_thaw`
-References: SPL3FTP [doi:10.5067/ZJOKL452HRLD](https://doi.org/10.5067/ZJOKL452HRLD)
+References: SPL3FTP [doi:10.5067/LQQ5I3QVGFTU](https://doi.org/10.5067/LQQ5I3QVGFTU)
diff --git a/config/default/common/config/metadata/layers/smap/SMAP_L3_Passive_Day_Soil_Moisture.md b/config/default/common/config/metadata/layers/smap/SMAP_L3_Passive_Day_Soil_Moisture.md
index b330320ddc..2458d4e285 100644
--- a/config/default/common/config/metadata/layers/smap/SMAP_L3_Passive_Day_Soil_Moisture.md
+++ b/config/default/common/config/metadata/layers/smap/SMAP_L3_Passive_Day_Soil_Moisture.md
@@ -4,6 +4,6 @@ The SMAP spacecraft carries two instruments, a radar (active) and a radiometer (
Data field: `soil_moisture`
-References: SPL3SMP [doi:10.5067/OMHVSRGFX38O](https://doi.org/10.5067/OMHVSRGFX38O)
+References: SPL3SMP [doi:10.5067/4XXOGX0OOW1S](https://doi.org/10.5067/4XXOGX0OOW1S)
diff --git a/config/default/common/config/metadata/layers/smap/SMAP_L3_Passive_Enhanced_Day_Freeze_Thaw.md b/config/default/common/config/metadata/layers/smap/SMAP_L3_Passive_Enhanced_Day_Freeze_Thaw.md
index 3c8d52f276..36934e8a1c 100644
--- a/config/default/common/config/metadata/layers/smap/SMAP_L3_Passive_Enhanced_Day_Freeze_Thaw.md
+++ b/config/default/common/config/metadata/layers/smap/SMAP_L3_Passive_Enhanced_Day_Freeze_Thaw.md
@@ -4,6 +4,6 @@ The SMAP spacecraft carries two instruments, a radar (active) and a radiometer (
Data field: `freeze_thaw`
-References: SPL3FTP_E [doi:10.5067/ZV08T8J395JB](https://doi.org/10.5067/ZV08T8J395JB)
+References: SPL3FTP_E [doi:10.5067/NQLCDOZJYAKX](https://doi.org/10.5067/NQLCDOZJYAKX)
diff --git a/config/default/common/config/metadata/layers/smap/SMAP_L3_Passive_Enhanced_Day_Soil_Moisture.md b/config/default/common/config/metadata/layers/smap/SMAP_L3_Passive_Enhanced_Day_Soil_Moisture.md
index 7475f6057d..758f2de899 100644
--- a/config/default/common/config/metadata/layers/smap/SMAP_L3_Passive_Enhanced_Day_Soil_Moisture.md
+++ b/config/default/common/config/metadata/layers/smap/SMAP_L3_Passive_Enhanced_Day_Soil_Moisture.md
@@ -4,6 +4,6 @@ The SMAP spacecraft carries two instruments, a radar (active) and a radiometer (
Data field: `soil_moisture`
-References: SPL3SMP_E [doi:10.5067/4DQ54OUIJ9DL](https://doi.org/10.5067/4DQ54OUIJ9DL)
+References: SPL3SMP_E [doi:10.5067/M20OXIZHY3RJ](https://doi.org/10.5067/M20OXIZHY3RJ)
diff --git a/config/default/common/config/metadata/layers/smap/SMAP_L3_Passive_Enhanced_Night_Freeze_Thaw.md b/config/default/common/config/metadata/layers/smap/SMAP_L3_Passive_Enhanced_Night_Freeze_Thaw.md
index 9ee716f02e..d183dd22d8 100644
--- a/config/default/common/config/metadata/layers/smap/SMAP_L3_Passive_Enhanced_Night_Freeze_Thaw.md
+++ b/config/default/common/config/metadata/layers/smap/SMAP_L3_Passive_Enhanced_Night_Freeze_Thaw.md
@@ -4,5 +4,5 @@ The SMAP spacecraft carries two instruments, a radar (active) and a radiometer (
Data field: `freeze_thaw`
-References: SPL3FTP_E [doi:10.5067/ZV08T8J395JB](https://doi.org/10.5067/ZV08T8J395JB)
+References: SPL3FTP_E [doi:10.5067/NQLCDOZJYAKX](https://doi.org/10.5067/NQLCDOZJYAKX)
diff --git a/config/default/common/config/metadata/layers/smap/SMAP_L3_Passive_Enhanced_Night_Soil_Moisture.md b/config/default/common/config/metadata/layers/smap/SMAP_L3_Passive_Enhanced_Night_Soil_Moisture.md
index f516e04942..375b8acb85 100644
--- a/config/default/common/config/metadata/layers/smap/SMAP_L3_Passive_Enhanced_Night_Soil_Moisture.md
+++ b/config/default/common/config/metadata/layers/smap/SMAP_L3_Passive_Enhanced_Night_Soil_Moisture.md
@@ -4,6 +4,6 @@ The SMAP spacecraft carries two instruments, a radar (active) and a radiometer (
Data field: `soil_moisture`
-References: SPL3SMP_E [doi:10.5067/4DQ54OUIJ9DL](https://doi.org/10.5067/4DQ54OUIJ9DL)
+References: SPL3SMP_E [doi:10.5067/M20OXIZHY3RJ](https://doi.org/10.5067/M20OXIZHY3RJ)
diff --git a/config/default/common/config/metadata/layers/smap/SMAP_L3_Passive_Night_Freeze_Thaw.md b/config/default/common/config/metadata/layers/smap/SMAP_L3_Passive_Night_Freeze_Thaw.md
index b1075d69ca..9f01a07129 100644
--- a/config/default/common/config/metadata/layers/smap/SMAP_L3_Passive_Night_Freeze_Thaw.md
+++ b/config/default/common/config/metadata/layers/smap/SMAP_L3_Passive_Night_Freeze_Thaw.md
@@ -4,4 +4,4 @@ The SMAP spacecraft carries two instruments, a radar (active) and a radiometer (
Data field: `freeze_thaw`
-References: SPL3FTP [doi:10.5067/ZJOKL452HRLD](https://doi.org/10.5067/ZJOKL452HRLD)
\ No newline at end of file
+References: SPL3FTP [doi:10.5067/LQQ5I3QVGFTU](https://doi.org/10.5067/LQQ5I3QVGFTU)
\ No newline at end of file
diff --git a/config/default/common/config/metadata/layers/smap/SMAP_L3_Passive_Night_Soil_Moisture.md b/config/default/common/config/metadata/layers/smap/SMAP_L3_Passive_Night_Soil_Moisture.md
index cd36cfad9a..970a0c8230 100644
--- a/config/default/common/config/metadata/layers/smap/SMAP_L3_Passive_Night_Soil_Moisture.md
+++ b/config/default/common/config/metadata/layers/smap/SMAP_L3_Passive_Night_Soil_Moisture.md
@@ -4,4 +4,4 @@ The SMAP spacecraft carries two instruments, a radar (active) and a radiometer (
Data field: `soil_moisture`
-References: SPL3SMP [doi:10.5067/OMHVSRGFX38O](https://doi.org/10.5067/OMHVSRGFX38O)
+References: SPL3SMP [doi:10.5067/4XXOGX0OOW1S](https://doi.org/10.5067/4XXOGX0OOW1S)
diff --git a/config/default/common/config/metadata/layers/trmm/LPRM_TMI_Surface_Soil_Moisture_X_Band_Day_Daily.md b/config/default/common/config/metadata/layers/trmm/LPRM_TMI_Surface_Soil_Moisture_X_Band_Day_Daily.md
new file mode 100644
index 0000000000..6283ea9c99
--- /dev/null
+++ b/config/default/common/config/metadata/layers/trmm/LPRM_TMI_Surface_Soil_Moisture_X_Band_Day_Daily.md
@@ -0,0 +1,5 @@
+The Surface Soil Moisture X-band (Day, Daily) layer displays level 3, daily, gridded surface soil moisture for the daytime overpass. The surface soil moisture information is derived from passive microwave remote sensing data from the Tropical Rainfall Measuring Mission (TRMM) Microwave Imager (TMI), using the Land Parameter Retrieval Model (LPRM). The LPRM is based on a forward radiative transfer model to retrieve surface soil moisture and vegetation optical depth.
+
+The spatial resolution is 25 km x 25 km, the imagery resolution is 2 km and temporal availability is daily, covering the period from December 1997 to April 2015.
+
+References: LPRM_TMI_DY_SOILM3 [doi:10.5067/8CHFMAWJQTCP](https://doi.org/10.5067/8CHFMAWJQTCP)
\ No newline at end of file
diff --git a/config/default/common/config/metadata/layers/trmm/LPRM_TMI_Surface_Soil_Moisture_X_Band_Night_Daily.md b/config/default/common/config/metadata/layers/trmm/LPRM_TMI_Surface_Soil_Moisture_X_Band_Night_Daily.md
new file mode 100644
index 0000000000..32e7d483dc
--- /dev/null
+++ b/config/default/common/config/metadata/layers/trmm/LPRM_TMI_Surface_Soil_Moisture_X_Band_Night_Daily.md
@@ -0,0 +1,5 @@
+The Surface Soil Moisture X-band (Night, Daily) layer displays level 3, daily, gridded surface soil moisture for the nighttime overpass. The surface soil moisture information is derived from passive microwave remote sensing data from the Tropical Rainfall Measuring Mission (TRMM) Microwave Imager (TMI), using the Land Parameter Retrieval Model (LPRM). The LPRM is based on a forward radiative transfer model to retrieve surface soil moisture and vegetation optical depth.
+
+The spatial resolution is 25 km x 25 km, the imagery resolution is 2 km and temporal availability is daily, covering the period from December 1997 to April 2015.
+
+References: LPRM_TMI_NT_SOILM3 [doi:10.5067/GWHRZEL8SA21](https://doi.org/10.5067/GWHRZEL8SA21)
\ No newline at end of file
diff --git a/config/default/common/config/metadata/layers/viirs/Chlorophyll_a.md b/config/default/common/config/metadata/layers/viirs/Chlorophyll_a.md
index aa963ca78f..14c0cf1ac8 100644
--- a/config/default/common/config/metadata/layers/viirs/Chlorophyll_a.md
+++ b/config/default/common/config/metadata/layers/viirs/Chlorophyll_a.md
@@ -1,4 +1,4 @@
### About Chlorophyll *a*
Chlorophyll is a light harvesting pigment found in most photosynthetic organisms. In the ocean, phytoplankton all contain the chlorophyll pigment, which has a greenish color. Derived from the Greek words _phyto_ (plant) and _plankton_ (made to wander or drift), _phytoplankton_ are microscopic organisms that live in watery environments, both salty and fresh. Some phytoplankton are bacteria, some are protists, and most are single-celled plants. The concentration of chlorophyll *a* is used as an index of phytoplankton biomass. Phytoplankton fix carbon through photosynthesis, taking in dissolved carbon dioxide in the sea water and producing oxygen, enabling phytoplankton to grow. Changes in the amount of phytoplankton indicate the change in productivity of the ocean and as marine phytoplankton capture almost an equal amount of carbon as does photosynthesis by land vegetation, it provides an ocean link to global climate change modeling. The Chlorophyll *a* product is therefore a useful product for assessing the “health” of the ocean. The presence of phytoplankton indicates sufficient nutrient conditions for phytoplankton to flourish, but harmful algal blooms (HABs) can result when high concentrations of phytoplankton produced toxins build up. Known as red tides, blue-green algae or cyanobacteria, harmful algal blooms have severe impacts on human health, aquatic ecosystems and the economy. Chlorophyll features can also be used to trace oceanographic currents, atmospheric jets/streams and upwelling/downwelling/river plumes. Chlorophyll concentration is also useful for studying the Earth’s climate system as it is plays an integral role in the Global Carbon Cycle. More phytoplankton in the ocean may result in a higher capture rate of carbon dioxide into the ocean and help cool the planet.
-References: [OceanColor Web - Level 1&2 Browsers](https://oceancolor.gsfc.nasa.gov/cgi/browse.pl?sen=am); [OceanColor Web - Chlorophyll a](https://oceancolor.gsfc.nasa.gov/atbd/chlor_a/); [NASA Earth Observations - Chlorophyll Concentration](https://neo.gsfc.nasa.gov/view.php?datasetId=MY1DMM_CHLORA)
+References: [OceanColor Web - Level 1&2 Browsers](https://oceancolor.gsfc.nasa.gov/cgi/browse.pl?sen=am); [Earthdata Algorithm Publication Tool - Chlorophyll a](https://www.earthdata.nasa.gov/apt/documents/chlor-a/v1.0); [NASA Earth Observations - Chlorophyll Concentration](https://neo.gsfc.nasa.gov/view.php?datasetId=MY1DMM_CHLORA)
diff --git a/config/default/common/config/metadata/layers/viirs/noaa20/VIIRS_NOAA20_Ice_Surface_Temp_Day.md b/config/default/common/config/metadata/layers/viirs/noaa20/VIIRS_NOAA20_Ice_Surface_Temp_Day.md
index c5af21e104..78c33dad8d 100644
--- a/config/default/common/config/metadata/layers/viirs/noaa20/VIIRS_NOAA20_Ice_Surface_Temp_Day.md
+++ b/config/default/common/config/metadata/layers/viirs/noaa20/VIIRS_NOAA20_Ice_Surface_Temp_Day.md
@@ -1,5 +1,5 @@
The Sea Ice Surface Temperature (Day) layer shows the "skin" temperature of the sea ice surface measured in Kelvin (K). It is derived from radiance data acquired by the Visible Infrared Imaging Radiometer Suite (VIIRS) aboard the joint NASA/NOAA Joint Polar Satellite System's first satellite (JPSS-1/NOAA-20). Following the approach used by MODIS, the algorithm converts VIIRS calibrated radiances into brightness temperature and computes Ice Surface Temperature (IST) using a split-window technique. Sea Ice Surface Temperature (IST) is an indicator of freeze/thaw processes on ice and has been used to separate thin ice from open water.
-The Ice Surface Temperature product is available for the Suomi NPP (VNP29) and JPSS-1/NOAA-20 (VJ129) satellites. The sensor resolution is 750 m, imagery resolution is 1 km, and the temporal resolution is daily.
+The Ice Surface Temperature layer is available for the Suomi NPP (VNP29) and JPSS-1/NOAA-20 (VJ129) satellites. The sensor resolution is 750 m, imagery resolution is 1 km, and the temporal resolution is daily.
References: VJ130_NRT [doi:10.5067/VIIRS/VJ130_NRT.002](https://doi.org/10.5067/VIIRS/VJ130_NRT.002); VJ130 [doi:10.5067/BW817SEFZ1TT](https://doi.org/10.5067/BW817SEFZ1TT)
\ No newline at end of file
diff --git a/config/default/common/config/metadata/layers/viirs/noaa20/VIIRS_NOAA20_Ice_Surface_Temp_Night.md b/config/default/common/config/metadata/layers/viirs/noaa20/VIIRS_NOAA20_Ice_Surface_Temp_Night.md
index c5af21e104..f283b8c36f 100644
--- a/config/default/common/config/metadata/layers/viirs/noaa20/VIIRS_NOAA20_Ice_Surface_Temp_Night.md
+++ b/config/default/common/config/metadata/layers/viirs/noaa20/VIIRS_NOAA20_Ice_Surface_Temp_Night.md
@@ -1,5 +1,5 @@
-The Sea Ice Surface Temperature (Day) layer shows the "skin" temperature of the sea ice surface measured in Kelvin (K). It is derived from radiance data acquired by the Visible Infrared Imaging Radiometer Suite (VIIRS) aboard the joint NASA/NOAA Joint Polar Satellite System's first satellite (JPSS-1/NOAA-20). Following the approach used by MODIS, the algorithm converts VIIRS calibrated radiances into brightness temperature and computes Ice Surface Temperature (IST) using a split-window technique. Sea Ice Surface Temperature (IST) is an indicator of freeze/thaw processes on ice and has been used to separate thin ice from open water.
+The Sea Ice Surface Temperature (Night) layer shows the "skin" temperature of the sea ice surface measured in Kelvin (K). It is derived from radiance data acquired by the Visible Infrared Imaging Radiometer Suite (VIIRS) aboard the joint NASA/NOAA Joint Polar Satellite System's first satellite (JPSS-1/NOAA-20). Following the approach used by MODIS, the algorithm converts VIIRS calibrated radiances into brightness temperature and computes Ice Surface Temperature (IST) using a split-window technique. Sea Ice Surface Temperature (IST) is an indicator of freeze/thaw processes on ice and has been used to separate thin ice from open water.
-The Ice Surface Temperature product is available for the Suomi NPP (VNP29) and JPSS-1/NOAA-20 (VJ129) satellites. The sensor resolution is 750 m, imagery resolution is 1 km, and the temporal resolution is daily.
+The Ice Surface Temperature layer is available for the Suomi NPP (VNP29) and JPSS-1/NOAA-20 (VJ129) satellites. The sensor resolution is 750 m, imagery resolution is 1 km, and the temporal resolution is daily.
References: VJ130_NRT [doi:10.5067/VIIRS/VJ130_NRT.002](https://doi.org/10.5067/VIIRS/VJ130_NRT.002); VJ130 [doi:10.5067/BW817SEFZ1TT](https://doi.org/10.5067/BW817SEFZ1TT)
\ No newline at end of file
diff --git a/config/default/common/config/metadata/layers/viirs/noaa20/VIIRS_NOAA20_Land_Surface_Temp_Day.md b/config/default/common/config/metadata/layers/viirs/noaa20/VIIRS_NOAA20_Land_Surface_Temp_Day.md
index ef529db1df..8eb0922c5c 100644
--- a/config/default/common/config/metadata/layers/viirs/noaa20/VIIRS_NOAA20_Land_Surface_Temp_Day.md
+++ b/config/default/common/config/metadata/layers/viirs/noaa20/VIIRS_NOAA20_Land_Surface_Temp_Day.md
@@ -2,6 +2,6 @@ The Land Surface Temperature (Day) layer shows the temperature of the land surfa
The VJ121 product is developed synergistically with the Moderate Resolution Imaging Spectroradiometer (MODIS) LST&E Version 6.1 product (MOD21) using the same input atmospheric products and algorithmic approach based on the ASTER Temperature Emissivity Separation (TES) technique. The VJ121 product uses a physics-based algorithm to dynamically retrieve both the LST and emissivity simultaneously for VIIRS thermal infrared bands M14 (8.55 µm), M15 (10.76 µm), and M16 (12 µm). The TES algorithm is combined with an improved Water Vapor Scaling (WVS) atmospheric correction scheme to stabilize the retrieval during very warm and humid conditions. The overall objective for NASA VIIRS products is to ensure the algorithms and products are compatible with the MODIS Terra and Aqua algorithms to promote the continuity of the Earth Observation System (EOS) mission.
-The Land Surface Temperature (Day) layer is available from both the joint NASA/NOAA Suomi NPP (VNP21) and NOAA-20 (VJ121) satellites. The sensor resolution is 750 m, imagery resolution is 1 km, and the temporal resolution is daily.
+The Land Surface Temperature layer is available from both the joint NASA/NOAA Suomi NPP (VNP21) and NOAA-20 (VJ121) satellites. The sensor resolution is 750 m, imagery resolution is 1 km, and the temporal resolution is daily.
References: VJ121_NRT [doi:10.5067/VIIRS/VJ121_NRT.002](https://doi.org/10.5067/VIIRS/VJ121_NRT.002); VJ121 [doi:10.5067/VIIRS/VJ121.002](https://doi.org/10.5067/VIIRS/VJ121.002)
\ No newline at end of file
diff --git a/config/default/common/config/metadata/layers/viirs/noaa20/VIIRS_NOAA20_Land_Surface_Temp_Night.md b/config/default/common/config/metadata/layers/viirs/noaa20/VIIRS_NOAA20_Land_Surface_Temp_Night.md
index a3f2a6cafc..93eaaf650e 100644
--- a/config/default/common/config/metadata/layers/viirs/noaa20/VIIRS_NOAA20_Land_Surface_Temp_Night.md
+++ b/config/default/common/config/metadata/layers/viirs/noaa20/VIIRS_NOAA20_Land_Surface_Temp_Night.md
@@ -2,6 +2,6 @@ The Land Surface Temperature (Night) layer shows the temperature of the land sur
The VJ121 product is developed synergistically with the Moderate Resolution Imaging Spectroradiometer (MODIS) LST&E Version 6.1 product (MOD21) using the same input atmospheric products and algorithmic approach based on the ASTER Temperature Emissivity Separation (TES) technique. The VJ121 product uses a physics-based algorithm to dynamically retrieve both the LST and emissivity simultaneously for VIIRS thermal infrared bands M14 (8.55 µm), M15 (10.76 µm), and M16 (12 µm). The TES algorithm is combined with an improved Water Vapor Scaling (WVS) atmospheric correction scheme to stabilize the retrieval during very warm and humid conditions. The overall objective for NASA VIIRS products is to ensure the algorithms and products are compatible with the MODIS Terra and Aqua algorithms to promote the continuity of the Earth Observation System (EOS) mission.
-The Land Surface Temperature (Day) layer is available from both the joint NASA/NOAA Suomi NPP (VNP21) and NOAA-20 (VJ121) satellites. The sensor resolution is 750 m, imagery resolution is 1 km, and the temporal resolution is daily.
+The Land Surface Temperature layer is available from both the joint NASA/NOAA Suomi NPP (VNP21) and NOAA-20 (VJ121) satellites. The sensor resolution is 750 m, imagery resolution is 1 km, and the temporal resolution is daily.
References: VJ121_NRT [doi:10.5067/VIIRS/VJ121_NRT.002](https://doi.org/10.5067/VIIRS/VJ121_NRT.002); VJ121 [doi:10.5067/VIIRS/VJ121.002](https://doi.org/10.5067/VIIRS/VJ121.002)
\ No newline at end of file
diff --git a/config/default/common/config/metadata/layers/viirs/noaa20/VIIRS_NOAA20_NDSI_Snow_Cover.md b/config/default/common/config/metadata/layers/viirs/noaa20/VIIRS_NOAA20_NDSI_Snow_Cover.md
index 3620b178be..50d03636b7 100644
--- a/config/default/common/config/metadata/layers/viirs/noaa20/VIIRS_NOAA20_NDSI_Snow_Cover.md
+++ b/config/default/common/config/metadata/layers/viirs/noaa20/VIIRS_NOAA20_NDSI_Snow_Cover.md
@@ -1,5 +1,4 @@
-The Snow Cover (Normalized Difference Snow Index (NDSI)) layer shows an estimate of snow cover. It is derived from radiance data acquired by the Visible Infrared Imaging Radiometer Suite (VIIRS) aboard the Joint Polar Satellite System's first satellite (JPSS-1/NOAA-20). Snow-covered land typically has very high reflectance in visible bands and very low reflectance in the shortwave infrared bands. The Normalized Difference Snow Index (NDSI) reveals the magnitude of this difference, with values greater than 0 typically indicating the presence of at least some snow. The VIIRS snow cover algorithm computes NDSI using VIIRS image bands I1 (0.64 µm, visible red) and I3 (1.61 µm, shortwave near-infrared) and then applies a series of data screens designed to alleviate
-likely errors and flag uncertain snow detections.
+The Snow Cover (Normalized Difference Snow Index (NDSI)) layer shows an estimate of snow cover. It is derived from radiance data acquired by the Visible Infrared Imaging Radiometer Suite (VIIRS) aboard the Joint Polar Satellite System's first satellite (JPSS-1/NOAA-20). Snow-covered land typically has very high reflectance in visible bands and very low reflectance in the shortwave infrared bands. The Normalized Difference Snow Index (NDSI) reveals the magnitude of this difference, with values greater than 0 typically indicating the presence of at least some snow. The VIIRS snow cover algorithm computes NDSI using VIIRS image bands I1 (0.64 µm, visible red) and I3 (1.61 µm, shortwave near-infrared) and then applies a series of data screens designed to alleviate likely errors and flag uncertain snow detections.
The Snow Cover (Normalized Difference Snow Index) layer is available from both the joint NASA/NOAA Suomi NPP (VNP10) and NOAA-20 (VJ110) satellites. The sensor resolution is 375 m, imagery resolution is 500 m, and the temporal resolution is daily.
diff --git a/config/default/common/config/metadata/layers/viirs/noaa20/VIIRS_NOAA20_Sea_Ice.md b/config/default/common/config/metadata/layers/viirs/noaa20/VIIRS_NOAA20_Sea_Ice.md
index 656675d25c..f9d82a9b18 100644
--- a/config/default/common/config/metadata/layers/viirs/noaa20/VIIRS_NOAA20_Sea_Ice.md
+++ b/config/default/common/config/metadata/layers/viirs/noaa20/VIIRS_NOAA20_Sea_Ice.md
@@ -1,5 +1,4 @@
-The Sea Ice Extent layer contain estimates of sea ice cover. It is derived from radiance data acquired by the Visible Infrared Imaging Radiometer Suite (VIIRS) aboard the Joint Polar Satellite System's first satellite (JPSS-1/NOAA-20). Following the approach used by MODIS, Sea Ice is detected using the Normalized Difference Snow Index. Snow-covered sea ice typically has very high reflectance in visible bands and very low reflectance in the shortwave infrared bands; the NDSI reveals the magnitude of this difference. The VIIRS sea ice cover algorithm computes NDSI using VIIRS image bands I1 (0.64 µm, visible red) and I3 (1.61 µm, shortwave near-infrared) and then applies a series of data screens designed to alleviate likely errors and flag uncertain sea ice
-detections.
+The Sea Ice Extent layer contain estimates of sea ice cover. It is derived from radiance data acquired by the Visible Infrared Imaging Radiometer Suite (VIIRS) aboard the Joint Polar Satellite System's first satellite (JPSS-1/NOAA-20). Following the approach used by MODIS, Sea Ice is detected using the Normalized Difference Snow Index. Snow-covered sea ice typically has very high reflectance in visible bands and very low reflectance in the shortwave infrared bands; the NDSI reveals the magnitude of this difference. The VIIRS sea ice cover algorithm computes NDSI using VIIRS image bands I1 (0.64 µm, visible red) and I3 (1.61 µm, shortwave near-infrared) and then applies a series of data screens designed to alleviate likely errors and flag uncertain sea ice detections.
The Sea Ice Extent layer is available from both the joint NASA/NOAA Suomi NPP (VNP29) and NOAA-20 (VJ129) satellites. The sensor resolution is 375 m, imagery resolution is 1 km, and the temporal resolution is daily.
diff --git a/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_Black_Marble.md b/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_Black_Marble.md
index 6175d0cc3a..686b00dde7 100644
--- a/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_Black_Marble.md
+++ b/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_Black_Marble.md
@@ -2,4 +2,4 @@ The Black Marble layer is a nighttime view of the Earth, showing visible light e
Currently, the Black Marble imagery is available only as a single snapshot in time for 2012 and 2016. The sensor resolution is 750 m and the image resolution is 500 m. The imagery can be visualized in Worldview/Global Imagery Browse Services (GIBS).
-References: [Earthdata - Nighttime Lights](https://earthdata.nasa.gov/learn/backgrounders/nighttime-lights); [NASA Earth Observatory: Night Light Maps Open Up New Applications](https://earthobservatory.nasa.gov/Features/NightLights); Lee, T., S. Miller, F. Turk, C. Schueler, R. Julian, S. Deyo, P. Dills, and S. Wang, 2006: The NPOESS VIIRS Day/Night Visible Sensor. Bull. Amer. Meteor. Soc., 87, 191–199, [doi: 10.1175/BAMS-87-2-191](https://journals.ametsoc.org/doi/abs/10.1175/BAMS-87-2-191); [The Lights of London. NASA Earth Observatory](https://earthobservatory.nasa.gov/IOTD/view.php?id=78674); [Out of the Blue and Into the Black. NASA Earth Observatory](https://earthobservatory.nasa.gov/Features/IntotheBlack/); Román, M. O. and Stokes, E. C. (2015), Holidays in lights: Tracking cultural patterns in demand for energy services. Earth's Future, 3: 182–205. [doi:10.1002/2014EF000285](https://onlinelibrary.wiley.com/doi/10.1002/2014EF000285/full)
+References: [Earthdata - Nighttime Lights](https://earthdata.nasa.gov/learn/backgrounders/nighttime-lights); [NASA Earth Observatory: Night Light Maps Open Up New Applications](https://earthobservatory.nasa.gov/Features/NightLights); Lee, T., S. Miller, F. Turk, C. Schueler, R. Julian, S. Deyo, P. Dills, and S. Wang, 2006: The NPOESS VIIRS Day/Night Visible Sensor. Bull. Amer. Meteor. Soc., 87, 191–199, [doi: 10.1175/BAMS-87-2-191](https://journals.ametsoc.org/doi/abs/10.1175/BAMS-87-2-191); [The Lights of London. NASA Earth Observatory](https://earthobservatory.nasa.gov/IOTD/view.php?id=78674); [Out of the Blue and Into the Black. NASA Earth Observatory](https://earthobservatory.nasa.gov/Features/IntotheBlack/); Román, M. O. and Stokes, E. C. (2015), Holidays in lights: Tracking cultural patterns in demand for energy services. Earth's Future, 3: 182–205. [doi:10.1002/2014EF000285](https://doi.org/10.1002/2014EF000285)
diff --git a/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_Brightness_Temp_BandI5_Day.md b/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_Brightness_Temp_BandI5_Day.md
index bcb1fb8cf2..1c235ddc89 100644
--- a/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_Brightness_Temp_BandI5_Day.md
+++ b/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_Brightness_Temp_BandI5_Day.md
@@ -1,4 +1,4 @@
-The VIIRS Brightness Temperature, Band I5, Day layer is the brightness temperature, measured in Kelvin (K), calculated from the top-of-the-atmosphere radiances. It does not provide an accurate temperature of either clouds nor the land surface, but it does show relative temperature differences which can be used to distinguish features both in clouds and over clear land. It can be used to distinguish land, sea ice, and open water over the polar regions during winter (in cloudless areas).
+The VIIRS Brightness Temperature (Band I5, Day) layer is the brightness temperature, measured in Kelvin (K), calculated from the top-of-the-atmosphere radiances. It does not provide an accurate temperature of either clouds nor the land surface, but it does show relative temperature differences which can be used to distinguish features both in clouds and over clear land. It can be used to distinguish land, sea ice, and open water over the polar regions during winter (in cloudless areas).
The VIIRS Brightness Temperature layer is calculated from VIIRS Calibrated Radiances (VNP02) and is available from the joint NASA/NOAA Suomi National Polar orbiting Partnership (Suomi NPP) satellite. The sensor resolution is 375m, the imagery resolution is 250m, and the temporal resolution is daily.
diff --git a/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_Brightness_Temp_BandI5_Night.md b/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_Brightness_Temp_BandI5_Night.md
index 83fc1a58ac..9e0b4198e4 100644
--- a/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_Brightness_Temp_BandI5_Night.md
+++ b/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_Brightness_Temp_BandI5_Night.md
@@ -1,4 +1,4 @@
-The VIIRS Brightness Temperature, Band I5 Night layer is the brightness temperature, measured in Kelvin (K), calculated from the top-of-the-atmosphere radiances. It does not provide an accurate temperature of either clouds nor the land surface, but it does show relative temperature differences which can be used to distinguish features both in clouds and over clear land. It can be used to distinguish land, sea ice, and open water over the polar regions during winter (in cloudless areas).
+The VIIRS Brightness Temperature (Band I5, Night) layer is the brightness temperature, measured in Kelvin (K), calculated from the top-of-the-atmosphere radiances. It does not provide an accurate temperature of either clouds nor the land surface, but it does show relative temperature differences which can be used to distinguish features both in clouds and over clear land. It can be used to distinguish land, sea ice, and open water over the polar regions during winter (in cloudless areas).
The VIIRS Brightness Temperature layer is calculated from VIIRS Calibrated Radiances (VNP02) and is available from the joint NASA/NOAA Suomi National Polar orbiting Partnership (Suomi NPP) satellite. The sensor resolution is 375m, the imagery resolution is 250m, and the temporal resolution is daily.
diff --git a/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_Clear_Sky_Confidence_Day.md b/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_Clear_Sky_Confidence_Day.md
index 95dc112023..569c3a2fea 100644
--- a/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_Clear_Sky_Confidence_Day.md
+++ b/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_Clear_Sky_Confidence_Day.md
@@ -1,4 +1,3 @@
-
The Clear Sky Confidence product is the output of a cloud mask designed to work on multiple imaging sensors. Data values range from 0->1 and represent a confidence that clear skies were observed. A value of 1.0 means very high confidence of clear sky. A value of 0.0 means very low confidence of clear sky, or very high confidence that cloudy skies were observed. Confidences <= 0.95 are considered to be cloudy or partially cloudy; hence, when viewing this product we would recommend setting the threshold from 0 -> 0.95. By doing that and having the base layer set as the Corrected Reflectance one can see how effective the product is at masking out clouds. Find out more about the [cloud mask product](https://ladsweb.modaps.eosdis.nasa.gov/missions-and-measurements/products/CLDMSK_L2_VIIRS_SNPP/).
References: CLDMSK_L2_VIIRS_SNPP_NRT [doi:10.5067/VIIRS/CLDMSK_L2_VIIRS_SNPP_NRT.001](https://doi.org/10.5067/VIIRS/CLDMSK_L2_VIIRS_SNPP_NRT.001)
diff --git a/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_DayNightBand_AtSensor_M15.md b/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_DayNightBand_AtSensor_M15.md
index c4dfd93359..f3162f3f7b 100644
--- a/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_DayNightBand_AtSensor_M15.md
+++ b/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_DayNightBand_AtSensor_M15.md
@@ -6,6 +6,6 @@ References: VNP46A1 [doi:10.5067/VIIRS/VNP46A1.001](https://doi.org/10.5067/VIIR
Román, M. O., Z. Wang, Q. Sun, V. Kalb, S. D. Miller, A. Molthan, L. Schultz, J. Bell, E. C. Stokes, B. Pandey, K. C. Seto, D. Hall, T. Oda, R. E. Wolfe, G. Lin, N. Golpayegani, S. Devadiga, C. Davidson, S. Sarkar, C. Praderas, J. Schmaltz, R. Boller, J. Stevens, O. M. Ramos Gonzalez, E. Padilla, J. Alonso, Y. Detrés, R. Armstrong, I. Miranda, Y. Conte, N. Marrero, K. MacManus, T. Esch, and E. J. Masuoka. 2018. "NASA’s Black Marble nighttime lights product suite." Remote Sensing of Environment 210 113-143 [doi:10.1016/j.rse.2018.03.017](https://doi.org/10.1016/j.rse.2018.03.017)
-Lee, T., S. Miller, F. Turk, C. Schueler, R. Julian, S. Deyo, P. Dills, and S. Wang, 2006: The NPOESS VIIRS Day/Night Visible Sensor. Bull. Amer. Meteor. Soc., 87, 191–199, [doi: 10.1175/BAMS-87-2-191](https://journals.ametsoc.org/doi/abs/10.1175/BAMS-87-2-191)
+Lee, T., S. Miller, F. Turk, C. Schueler, R. Julian, S. Deyo, P. Dills, and S. Wang, 2006: The NPOESS VIIRS Day/Night Visible Sensor. Bull. Amer. Meteor. Soc., 87, 191–199, [doi:10.1175/BAMS-87-2-191](https://doi.org/10.1175/BAMS-87-2-191)
-Román, M. O. and Stokes, E. C. (2015), Holidays in lights: Tracking cultural patterns in demand for energy services. Earth's Future, 3: 182–205. [doi:10.1002/2014EF000285](https://onlinelibrary.wiley.com/doi/10.1002/2014EF000285/full)
+Román, M. O. and Stokes, E. C. (2015), Holidays in lights: Tracking cultural patterns in demand for energy services. Earth's Future, 3: 182–205. [doi:10.1002/2014EF000285](https://doi.org/10.1002/2014EF000285)
diff --git a/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_DayNightBand_At_Sensor_Radiance.md b/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_DayNightBand_At_Sensor_Radiance.md
index 265f4742d3..f3f6a5ba14 100644
--- a/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_DayNightBand_At_Sensor_Radiance.md
+++ b/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_DayNightBand_At_Sensor_Radiance.md
@@ -11,6 +11,6 @@ References: VNP46A1 [doi:10.5067/VIIRS/VNP46A1.001](https://doi.org/10.5067/VIIR
Román, M. O., Z. Wang, Q. Sun, V. Kalb, S. D. Miller, A. Molthan, L. Schultz, J. Bell, E. C. Stokes, B. Pandey, K. C. Seto, D. Hall, T. Oda, R. E. Wolfe, G. Lin, N. Golpayegani, S. Devadiga, C. Davidson, S. Sarkar, C. Praderas, J. Schmaltz, R. Boller, J. Stevens, O. M. Ramos Gonzalez, E. Padilla, J. Alonso, Y. Detrés, R. Armstrong, I. Miranda, Y. Conte, N. Marrero, K. MacManus, T. Esch, and E. J. Masuoka. 2018. "NASA’s Black Marble nighttime lights product suite." Remote Sensing of Environment 210 113-143 [doi:10.1016/j.rse.2018.03.017](https://doi.org/10.1016/j.rse.2018.03.017)
-Lee, T., S. Miller, F. Turk, C. Schueler, R. Julian, S. Deyo, P. Dills, and S. Wang, 2006: The NPOESS VIIRS Day/Night Visible Sensor. Bull. Amer. Meteor. Soc., 87, 191–199, [doi: 10.1175/BAMS-87-2-191](https://journals.ametsoc.org/doi/abs/10.1175/BAMS-87-2-191)
+Lee, T., S. Miller, F. Turk, C. Schueler, R. Julian, S. Deyo, P. Dills, and S. Wang, 2006: The NPOESS VIIRS Day/Night Visible Sensor. Bull. Amer. Meteor. Soc., 87, 191–199, [doi:10.1175/BAMS-87-2-191](https://doi.org/10.1175/BAMS-87-2-191)
-Román, M. O. and Stokes, E. C. (2015), Holidays in lights: Tracking cultural patterns in demand for energy services. Earth's Future, 3: 182–205. [doi:10.1002/2014EF000285](https://onlinelibrary.wiley.com/doi/10.1002/2014EF000285/full)
+Román, M. O. and Stokes, E. C. (2015), Holidays in lights: Tracking cultural patterns in demand for energy services. Earth's Future, 3: 182–205. [doi:10.1002/2014EF000285](https://doi.org/10.1002/2014EF000285)
diff --git a/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_Ice_Surface_Temp_Day.md b/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_Ice_Surface_Temp_Day.md
index dc66be4357..bba0ca5723 100644
--- a/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_Ice_Surface_Temp_Day.md
+++ b/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_Ice_Surface_Temp_Day.md
@@ -1,5 +1,5 @@
The Sea Ice Surface Temperature (Day) layer shows the "skin" temperature of the sea ice surface measured in Kelvin (K). It is derived from radiance data acquired by the Visible Infrared Imaging Radiometer Suite (VIIRS) aboard the joint NASA/NOAA Suomi National Polar-orbiting Partnership (Suomi NPP) satellite. Following the approach used by MODIS, the algorithm converts VIIRS calibrated radiances into brightness temperature and computes Ice Surface Temperature (IST) using a split-window technique. Sea Ice Surface Temperature (IST) is an indicator of freeze/thaw processes on ice and has been used to separate thin ice from open water.
-The Ice Surface Temperature product is available for the Suomi NPP (VNP29) and JPSS-1/NOAA-20 (VJ129) satellites. The sensor resolution is 750 m, imagery resolution is 1 km, and the temporal resolution is daily.
+The Ice Surface Temperature layer is available for the Suomi NPP (VNP29) and JPSS-1/NOAA-20 (VJ129) satellites. The sensor resolution is 750 m, imagery resolution is 1 km, and the temporal resolution is daily.
References: VNP30_NRT [doi:10.5067/VIIRS/VNP30_NRT.002](https://doi.org/10.5067/VIIRS/VNP30_NRT.002); VNP30 [doi:10.5067/SC6UQYYRF79V](https://doi.org/10.5067/SC6UQYYRF79V)
\ No newline at end of file
diff --git a/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_Ice_Surface_Temp_Night.md b/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_Ice_Surface_Temp_Night.md
index dc66be4357..37efa854be 100644
--- a/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_Ice_Surface_Temp_Night.md
+++ b/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_Ice_Surface_Temp_Night.md
@@ -1,5 +1,5 @@
-The Sea Ice Surface Temperature (Day) layer shows the "skin" temperature of the sea ice surface measured in Kelvin (K). It is derived from radiance data acquired by the Visible Infrared Imaging Radiometer Suite (VIIRS) aboard the joint NASA/NOAA Suomi National Polar-orbiting Partnership (Suomi NPP) satellite. Following the approach used by MODIS, the algorithm converts VIIRS calibrated radiances into brightness temperature and computes Ice Surface Temperature (IST) using a split-window technique. Sea Ice Surface Temperature (IST) is an indicator of freeze/thaw processes on ice and has been used to separate thin ice from open water.
+The Sea Ice Surface Temperature (Night) layer shows the "skin" temperature of the sea ice surface measured in Kelvin (K). It is derived from radiance data acquired by the Visible Infrared Imaging Radiometer Suite (VIIRS) aboard the joint NASA/NOAA Suomi National Polar-orbiting Partnership (Suomi NPP) satellite. Following the approach used by MODIS, the algorithm converts VIIRS calibrated radiances into brightness temperature and computes Ice Surface Temperature (IST) using a split-window technique. Sea Ice Surface Temperature (IST) is an indicator of freeze/thaw processes on ice and has been used to separate thin ice from open water.
-The Ice Surface Temperature product is available for the Suomi NPP (VNP29) and JPSS-1/NOAA-20 (VJ129) satellites. The sensor resolution is 750 m, imagery resolution is 1 km, and the temporal resolution is daily.
+The Ice Surface Temperature layer is available for the Suomi NPP (VNP29) and JPSS-1/NOAA-20 (VJ129) satellites. The sensor resolution is 750 m, imagery resolution is 1 km, and the temporal resolution is daily.
References: VNP30_NRT [doi:10.5067/VIIRS/VNP30_NRT.002](https://doi.org/10.5067/VIIRS/VNP30_NRT.002); VNP30 [doi:10.5067/SC6UQYYRF79V](https://doi.org/10.5067/SC6UQYYRF79V)
\ No newline at end of file
diff --git a/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_Land_Surface_Temp_Day.md b/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_Land_Surface_Temp_Day.md
index 5b24475d0b..8cff155b08 100644
--- a/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_Land_Surface_Temp_Day.md
+++ b/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_Land_Surface_Temp_Day.md
@@ -2,6 +2,6 @@ The Land Surface Temperature (Day) layer shows the temperature of the land surfa
The VJ121 product is developed synergistically with the Moderate Resolution Imaging Spectroradiometer (MODIS) LST&E Version 6.1 product (MOD21) using the same input atmospheric products and algorithmic approach based on the ASTER Temperature Emissivity Separation (TES) technique. The VJ121 product uses a physics-based algorithm to dynamically retrieve both the Land Surface Temperature (LST) and emissivity simultaneously for VIIRS thermal infrared bands M14 (8.55 µm), M15 (10.76 µm), and M16 (12 µm). The TES algorithm is combined with an improved Water Vapor Scaling (WVS) atmospheric correction scheme to stabilize the retrieval during very warm and humid conditions. The overall objective for NASA VIIRS products is to ensure the algorithms and products are compatible with the MODIS Terra and Aqua algorithms to promote the continuity of the Earth Observation System (EOS) mission.
-The Land Surface Temperature (Day) layer is available from both the joint NASA/NOAA Suomi NPP (VNP21) and NOAA-20 (VJ121) satellites. The sensor resolution is 750 m, imagery resolution is 1 km, and the temporal resolution is daily.
+The Land Surface Temperature layer is available from both the joint NASA/NOAA Suomi NPP (VNP21) and NOAA-20 (VJ121) satellites. The sensor resolution is 750 m, imagery resolution is 1 km, and the temporal resolution is daily.
References: VNP21_NRT [doi:10.5067/VIIRS/VNP21_NRT.002](https://doi.org/10.5067/VIIRS/VNP21_NRT.002); VNP21 [doi:10.5067/VIIRS/VNP21.002](https://doi.org/10.5067/VIIRS/VNP21.002)
\ No newline at end of file
diff --git a/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_Land_Surface_Temp_Night.md b/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_Land_Surface_Temp_Night.md
index e0906fa028..1541d468df 100644
--- a/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_Land_Surface_Temp_Night.md
+++ b/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_Land_Surface_Temp_Night.md
@@ -2,6 +2,6 @@ The Land Surface Temperature (Night) layer shows the temperature of the land sur
The VJ121 product is developed synergistically with the Moderate Resolution Imaging Spectroradiometer (MODIS) LST&E Version 6.1 product (MOD21) using the same input atmospheric products and algorithmic approach based on the ASTER Temperature Emissivity Separation (TES) technique. The VJ121 product uses a physics-based algorithm to dynamically retrieve both the Land Surface Temperature (LST) and emissivity simultaneously for VIIRS thermal infrared bands M14 (8.55 µm), M15 (10.76 µm), and M16 (12 µm). The TES algorithm is combined with an improved Water Vapor Scaling (WVS) atmospheric correction scheme to stabilize the retrieval during very warm and humid conditions. The overall objective for NASA VIIRS products is to ensure the algorithms and products are compatible with the MODIS Terra and Aqua algorithms to promote the continuity of the Earth Observation System (EOS) mission.
-The Land Surface Temperature (Night) layer is available from both the joint NASA/NOAA Suomi NPP (VNP21) and NOAA-20 (VJ121) satellites. The sensor resolution is 750 m, imagery resolution is 1 km, and the temporal resolution is daily.
+The Land Surface Temperature layer is available from both the joint NASA/NOAA Suomi NPP (VNP21) and NOAA-20 (VJ121) satellites. The sensor resolution is 750 m, imagery resolution is 1 km, and the temporal resolution is daily.
References: VNP21_NRT [doi:10.5067/VIIRS/VNP21_NRT.002](https://doi.org/10.5067/VIIRS/VNP21_NRT.002); VNP21 [doi:10.5067/VIIRS/VNP21.002](https://doi.org/10.5067/VIIRS/VNP21.002)
\ No newline at end of file
diff --git a/config/default/common/config/metadata/stories/dust_storms_overview_2019/step001.md b/config/default/common/config/metadata/stories/dust_storms_overview_2019/step001.md
index f84a47bc59..80036a65e0 100644
--- a/config/default/common/config/metadata/stories/dust_storms_overview_2019/step001.md
+++ b/config/default/common/config/metadata/stories/dust_storms_overview_2019/step001.md
@@ -1,3 +1,3 @@
Sand and dust storms commonly occur in arid and semi-arid regions, like deserts. Strong winds pick up dust and sand from areas with dry, bare soils, lift the dust into the atmosphere, and can transport the dust many, many kilometers away. Main sources of dust are Northern Africa, the Arabian Peninsula, Central Asia and China. Areas like Australia, America and South Africa have minor contributions, yet are still important. Providing a general idea of where the major dust contributors are, this Dust Surface Mass Concentration layer from the Modern-Era Retrospective analysis for Research and Applications, Version 2 (MERRA-2) shows the dust surface mass concentrations for February 2019. MERRA-2 assimilates space-based observations and model-bases analyses to produce long-term, global information on the Earth System.
-References: [World Meteorological Organization: Sand and Dust Storms](https://public.wmo.int/en/our-mandate/focus-areas/environment/SDS); [Global Modeling and Assimilation Office: Modern-Era Retrospective analysis for Research and Applications, Version 2](https://gmao.gsfc.nasa.gov/reanalysis/MERRA-2/)
+References: [Global Modeling and Assimilation Office: Modern-Era Retrospective analysis for Research and Applications, Version 2](https://gmao.gsfc.nasa.gov/reanalysis/MERRA-2/)
diff --git a/config/default/common/config/metadata/stories/geostationary/step002.md b/config/default/common/config/metadata/stories/geostationary/step002.md
index 793906c91d..fa98f0da54 100644
--- a/config/default/common/config/metadata/stories/geostationary/step002.md
+++ b/config/default/common/config/metadata/stories/geostationary/step002.md
@@ -1 +1 @@
-Worldview now has imagery from several geostationary satellites! These satellites follow the same direction and rate of the Earth's rotation, so from Earth, it appears the satellite is fixed in one location. This means the satellite captures the same view of Earth and provides almost continuous coverage of one area. Worldview has imagery from the Geostationary Operational Environmental Satellites-East (GOES-East), GOES-West, and Himawari-8. The geostationary imagery is available in 10 minute increments, available approximately 30 to 40 minutes after satellite observation, and on a rolling 30 to 90 day basis.
\ No newline at end of file
+Worldview now has imagery from several geostationary satellites! These satellites follow the same direction and rate of the Earth's rotation, so from Earth, it appears the satellite is fixed in one location. This means the satellite captures the same view of Earth and provides almost continuous coverage of one area. Worldview has imagery from the Geostationary Operational Environmental Satellites-East (GOES-East), GOES-West, and Himawari-8. The geostationary imagery is available in 10 minute increments, available approximately 30 to 40 minutes after satellite observation, and on a rolling 90 day basis.
\ No newline at end of file
diff --git a/config/default/common/config/metadata/stories/surface_water_extent/step001.md b/config/default/common/config/metadata/stories/surface_water_extent/step001.md
new file mode 100644
index 0000000000..1f92208e86
--- /dev/null
+++ b/config/default/common/config/metadata/stories/surface_water_extent/step001.md
@@ -0,0 +1 @@
+Near-global surface water extent at 30 meter resolution is available in Worldview through the Observational Products for End-Users from Remote Sensing Analysis (OPERA) project. The Level-3 product maps surface water every few days. The layer has 5 classifications: Not Water, Open Water, Partial Surface Water, Snow/Ice, and Cloud. The input dataset is the Harmonized Landsat Sentinel-2 (HLS) dataset, and currently uses data from Landsat 8, Sentinel-2A and Sentinel-2B.
\ No newline at end of file
diff --git a/config/default/common/config/metadata/stories/surface_water_extent/step002.md b/config/default/common/config/metadata/stories/surface_water_extent/step002.md
new file mode 100644
index 0000000000..4e75edb368
--- /dev/null
+++ b/config/default/common/config/metadata/stories/surface_water_extent/step002.md
@@ -0,0 +1 @@
+The Laguna de Aculeo is a two hours' drive from Santiago, Chile and was a long-time popular summer vacationing spot to go boating, swimming, and water skiing. A combination of nearby population growth, purchasing of water rights for agriculture, and drought caused the shallow lake to go dry in 2018. This true-color reflectance image from 18 May 2023 from the European Space Agency's (ESA) Sentinel-2A and -2B satellites show a dry lake bed in shades of brown in the center of the map.
\ No newline at end of file
diff --git a/config/default/common/config/metadata/stories/surface_water_extent/step003.md b/config/default/common/config/metadata/stories/surface_water_extent/step003.md
new file mode 100644
index 0000000000..2e2a06bfe3
--- /dev/null
+++ b/config/default/common/config/metadata/stories/surface_water_extent/step003.md
@@ -0,0 +1 @@
+An intense winter storm fueled by an atmospheric river in late-August 2023 caused the lake to partially refill. The image on the left shows the dried lake bed on 18 May 2023, and the image on the right shows the partially filled lake on 15 September 2023. Swipe the bar back and forth to see the lake fill and turn greenish blue on the right "B" side of the map.
\ No newline at end of file
diff --git a/config/default/common/config/metadata/stories/surface_water_extent/step004.md b/config/default/common/config/metadata/stories/surface_water_extent/step004.md
new file mode 100644
index 0000000000..5577444dde
--- /dev/null
+++ b/config/default/common/config/metadata/stories/surface_water_extent/step004.md
@@ -0,0 +1,3 @@
+The OPERA surface water extent layer helps to highlight the refilled lake in shades of blue, indicating open water and partial surface water. The layer is designed to improve our understanding of the spatial and temporal variations of land inundation by surface water. It is currently unclear how long this lake will remain filled, but as of 19 December 2023 in the right image, the lake appears to be at a similar water level as the left image from 15 September.
+
+Learn more at Earth Observatory's [Water Returns to Laguna de Acuelo](https://earthobservatory.nasa.gov/images/151836/water-returns-to-laguna-de-aculeo).
\ No newline at end of file
diff --git a/config/default/common/config/metadata/stories/surface_water_extent/step005.md b/config/default/common/config/metadata/stories/surface_water_extent/step005.md
new file mode 100644
index 0000000000..970e19f823
--- /dev/null
+++ b/config/default/common/config/metadata/stories/surface_water_extent/step005.md
@@ -0,0 +1 @@
+The Indus River Valley receives heavy monsoon rains each summer which contribute to the appearance of extensive surface water. These false-color reflectance images from Landsat 8 show water in dark blues. The left image is from 3 May 2023, before the monsoon rains, and the right side is from 7 August 2023. Swiping the bar back and forth reveals the extent of floodwaters along the riverbanks and in the surrounding region.
\ No newline at end of file
diff --git a/config/default/common/config/metadata/stories/surface_water_extent/step006.md b/config/default/common/config/metadata/stories/surface_water_extent/step006.md
new file mode 100644
index 0000000000..8d6ced3909
--- /dev/null
+++ b/config/default/common/config/metadata/stories/surface_water_extent/step006.md
@@ -0,0 +1 @@
+The OPERA surface water extent layer shows the floodwaters very clearly in shades of dark and light blue. It highlights how much surface water there is beyond the meandering river banks and the water covering the surrounding region.
\ No newline at end of file
diff --git a/config/default/common/config/metadata/stories/surface_water_extent/step007.md b/config/default/common/config/metadata/stories/surface_water_extent/step007.md
new file mode 100644
index 0000000000..48978ba27f
--- /dev/null
+++ b/config/default/common/config/metadata/stories/surface_water_extent/step007.md
@@ -0,0 +1,2 @@
+The Kakhovka Dam, along the Dnieper River in Ukraine was breached on 6 June 2023. The left image is from 5 June 2023, and shows the filled Kakhovka Reservoir in the right portion of the map. The right image is from 5 July 2023 and shows the drained reservoir. Turn on and off the OPERA surface water extent layer to see that the reservoir is no longer full of water, but is mostly brown, exposed ground.
+
diff --git a/config/default/common/config/metadata/stories/surface_water_extent/step008.md b/config/default/common/config/metadata/stories/surface_water_extent/step008.md
new file mode 100644
index 0000000000..4654f2792b
--- /dev/null
+++ b/config/default/common/config/metadata/stories/surface_water_extent/step008.md
@@ -0,0 +1 @@
+Zooming in closer, it is evident that the dam was breached. Swipe the bar back and forth to compare the amount of water in the reservoir between 5 June 2023 and 4 August 2023. The right image shows light brown, exposed land of the drained reservoir.
\ No newline at end of file
diff --git a/config/default/common/config/metadata/stories/surface_water_extent/step009.md b/config/default/common/config/metadata/stories/surface_water_extent/step009.md
new file mode 100644
index 0000000000..e96bb5360c
--- /dev/null
+++ b/config/default/common/config/metadata/stories/surface_water_extent/step009.md
@@ -0,0 +1 @@
+Tulare Lake in San Joaquin Valley, California, was once the largest freshwater lake west of the Mississippi River but feeder rivers were diverted for irrigation and municipal water use. Since the 1920s, the dry lake bed has been used to grow crops like almonds and tomatoes. Drag the comparison slider to the right "B" side shows how heavy rains caused the area to flood and re-fill.
\ No newline at end of file
diff --git a/config/default/common/config/metadata/stories/surface_water_extent/step010.md b/config/default/common/config/metadata/stories/surface_water_extent/step010.md
new file mode 100644
index 0000000000..85a4111ccb
--- /dev/null
+++ b/config/default/common/config/metadata/stories/surface_water_extent/step010.md
@@ -0,0 +1,3 @@
+Storm Ciarán hit northwestern France on 1 November 2023 and moved to Britain and western Europe on 2 November causing heavy rains and strong winds. This comparison of northwestern Tuscany shows 2 October 2023 on the "A" left side, and 3 November on the "B" right side. The "B" side shows flooded agricultural fields near the river banks in dark and light blue.
+
+Read more at Earth Observatory's [Flooding in Tuscany](https://earthobservatory.nasa.gov/images/152051/flooding-in-tuscany).
\ No newline at end of file
diff --git a/config/default/common/config/metadata/stories/surface_water_extent/surface-water-extent.png b/config/default/common/config/metadata/stories/surface_water_extent/surface-water-extent.png
new file mode 100644
index 0000000000000000000000000000000000000000..764606fda5e9fb73f106f470d6c6936e485126cc
GIT binary patch
literal 122532
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
z
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