Skip to content

Commit

Permalink
Merge pull request #331 from NASA-IMPACT/develop
Browse files Browse the repository at this point in the history
Deploy v0.13.0
  • Loading branch information
hanbyul-here authored Oct 31, 2023
2 parents f57fd31 + 439540a commit d858eae
Show file tree
Hide file tree
Showing 42 changed files with 3,305 additions and 73 deletions.
1 change: 1 addition & 0 deletions .env
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ API_RASTER_ENDPOINT='https://staging-raster.delta-backend.com'

# Endpoint for the STAC server. No trailing slash.
API_STAC_ENDPOINT='https://staging-stac.delta-backend.com'
API_XARRAY_ENDPOINT='https://prod-titiler-xarray.delta-backend.com/tilejson.json'

MAPBOX_STYLE_URL='mapbox://styles/covid-nasa/ckb01h6f10bn81iqg98ne0i2y'

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/deploy-prod.yml
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ jobs:

- name: Deploy to S3 Production
run: |
aws s3 sync ./deploy s3://${{ env.DEPLOY_BUCKET_PROD }} --delete
aws s3 sync ./deploy s3://${{ env.DEPLOY_BUCKET_PROD }} --cache-control max-age=604800 --delete
- name: Invalidate CloudFront cache
uses: oneyedev/aws-cloudfront-invalidation@v1
Expand Down
2 changes: 1 addition & 1 deletion .veda/ui
Submodule ui updated 55 files
+4 −0 app/scripts/components/about/index.tsx
+50 −0 app/scripts/components/analysis/constants.ts
+19 −9 app/scripts/components/analysis/define/aoi-selector.tsx
+0 −29 app/scripts/components/analysis/define/constants.ts
+339 −171 app/scripts/components/analysis/define/index.tsx
+133 −0 app/scripts/components/analysis/define/page-footer.actions.tsx
+0 −130 app/scripts/components/analysis/define/page-hero-actions.tsx
+144 −0 app/scripts/components/analysis/define/use-stac-collection-search.ts
+0 −94 app/scripts/components/analysis/define/use-stac-search.ts
+38 −0 app/scripts/components/analysis/define/utils.test.ts
+45 −0 app/scripts/components/analysis/define/utils.ts
+0 −199 app/scripts/components/analysis/results/analysis-head-actions.tsx
+81 −0 app/scripts/components/analysis/results/analysis-head.tsx
+139 −0 app/scripts/components/analysis/results/analysis-metrics-dropdown.tsx
+47 −19 app/scripts/components/analysis/results/chart-card.tsx
+11 −20 app/scripts/components/analysis/results/index.tsx
+7 −1 app/scripts/components/analysis/results/timeseries-data.ts
+5 −4 app/scripts/components/analysis/results/use-analysis-params.ts
+4 −5 app/scripts/components/analysis/saved-analysis-control.tsx
+35 −33 app/scripts/components/common/blocks/block-map.tsx
+2 −1 app/scripts/components/common/browse-controls/use-browse-controls.ts
+1 −1 app/scripts/components/common/chart/analysis/utils.ts
+6 −16 app/scripts/components/common/dropdown-scrollable.tsx
+3 −1 app/scripts/components/common/fold.tsx
+2 −2 app/scripts/components/common/google-form.tsx
+6 −11 app/scripts/components/common/mapbox/layer-legend.tsx
+1 −1 app/scripts/components/common/mapbox/layers/raster-timeseries.tsx
+23 −27 app/scripts/components/common/mapbox/layers/utils.ts
+2 −0 app/scripts/components/common/mapbox/map-coords.tsx
+4 −9 app/scripts/components/common/mapbox/map-options/index.tsx
+2 −2 app/scripts/components/common/mapbox/map.tsx
+5 −1 app/scripts/components/common/mapbox/mapbox-style-override.js
+1 −1 app/scripts/components/common/notebook-connect.tsx
+21 −9 app/scripts/components/common/page-header.tsx
+1 −2 app/scripts/components/common/page-local-nav.js
+0 −41 app/scripts/components/common/shadow-scrollbar-improved.tsx
+9 −3 app/scripts/components/data-catalog/index.tsx
+0 −1 app/scripts/components/datasets/s-explore/dataset-layer-single.tsx
+82 −48 app/scripts/components/datasets/s-explore/index.tsx
+14 −9 app/scripts/components/datasets/s-overview/index.tsx
+59 −44 app/scripts/components/development/index.tsx
+2 −2 app/scripts/components/stories/hub/index.tsx
+0 −8 app/scripts/main.tsx
+2 −3 app/scripts/styles/panel.tsx
+1 −0 app/scripts/styles/theme.ts
+7 −2 app/scripts/utils/date.ts
+6 −1 app/scripts/utils/use-media-query.ts
+18 −7 app/scripts/utils/use-scrollbar-width-css.ts
+6 −0 docs/content/CONTENT.md
+26 −0 docs/content/PAGE_OVERRIDES.md
+27 −0 docs/content/frontmatter/layer.md
+8 −0 mock/datasets/no2.data.mdx
+4 −2 package.json
+6 −0 parcel-resolver-veda/index.d.ts
+88 −77 yarn.lock
4 changes: 2 additions & 2 deletions datasets/CMIP-winter-median-pr.data.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ layers:
layerId: CMIP245-winter-median-pr
mapLabel: |
::js ({ dateFns, datetime, compareDatetime }) => {
return `${dateFns.format(datetime, 'DD LLL yyyy')}`;
if (dateFns && datetime && compareDatetime) return `${dateFns.format(datetime, 'DD LLL yyyy')}`;
}
legend:
type: gradient
Expand Down Expand Up @@ -66,7 +66,7 @@ layers:
layerId: CMIP585-winter-median-pr
mapLabel: |
::js ({ dateFns, datetime, compareDatetime }) => {
return `${dateFns.format(datetime, 'DD LLL yyyy')}`;
if (dateFns && datetime && compareDatetime) return `${dateFns.format(datetime, 'DD LLL yyyy')}`;
}
legend:
type: gradient
Expand Down
4 changes: 2 additions & 2 deletions datasets/CMIP-winter-median-ta.data.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ layers:
layerId: CMIP245-winter-median-ta
mapLabel: |
::js ({ dateFns, datetime, compareDatetime }) => {
return `${dateFns.format(datetime, 'DD LLL yyyy')}`;
if (dateFns && datetime && compareDatetime) return `${dateFns.format(datetime, 'DD LLL yyyy')}`;
}
legend:
unit:
Expand Down Expand Up @@ -66,7 +66,7 @@ layers:
layerId: CMIP585-winter-median-ta
mapLabel: |
::js ({ dateFns, datetime, compareDatetime }) => {
return `${dateFns.format(datetime, 'DD LLL yyyy')}`;
if (dateFns && datetime && compareDatetime) return `${dateFns.format(datetime, 'DD LLL yyyy')}`;
}
legend:
unit:
Expand Down
92 changes: 92 additions & 0 deletions datasets/FLDAS-soilmoisture-anomalies.data.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
---
id: fldas-soil-moisture-anomalies
name: "FLDAS Surface Soil Moisture Anomalies"
description: "A 10 km global data product with 40 years of monthly soil moisture anomalies for food and water security monitoring from the Famine Early Warning System Network (FEWS NET) Land Data Assimilation System"
media:
src: ::file ./FLDAS_Dataset_Cover.jpg
alt: Landscape in Gondar, Ethiopia
author:
name: Amy McNally
taxonomy:
- name: Topics
values:
- Agriculture
- name: Source
values:
- NASA GES DISC
layers:
- id: SoilMoi00_10cm_tavg
stacCol: fldas-soil-moisture-anomalies
name: FLDAS Surface Soil Moisture Anomalies
type: raster
description: "Surface soil moisture 0-10cm anomaly"
zoomExtent:
- 0
- 14
sourceParams:
colormap_name: rdbu
rescale: -0.3, 0.3
resampling: bilinear
bidx: 1
nodata: -9999
compare:
datasetId: fldas-soil-moisture-anomalies
layerId: SoilMoi00_10cm_tavg
mapLabel: |
::js ({ dateFns, datetime, compareDatetime }) => {
return `${dateFns.format(datetime, 'DD LLL yyyy')}`;
}
legend:
unit:
label: kg mm3/mm3
type: gradient
min: "-0.3"
max: "0.3"
stops:
- "#67001f"
- "#d6604d"
- "#fddbc7"
- "#d1e5f0"
- "#4393c3"
- "#053061"
---

<Block type='wide'>
<Prose>
FLDAS is the Famine Early Warning Systems Network (FEWS NET) Land Data Assimilation System. The goal of FLDAS is to use observational and forecast datasets and advanced modeling methods to generate high quality fields of land surface states and fluxes used for FEWS NET decision support. The FLDAS systems are custom instances of the NASA Land Information System (LIS) that have been adapted to work with the domains, data streams, and monitoring and forecast requirements associated with food security assessment in data-sparse, developing countries. Surface soil moisture anomalies are an indicator of wet and dry extremes that have the potential to impact agricultural and food security outcomes.

- **Temporal Extent:** January 1982 - June 2023
- **Temporal Resolution:** Monthly
- **Spatial Extent:** Quasi-Global ( -180.0,-60.0,180.0,90.0)
- **Spatial Resolution:** 10 km x 10 km
- **Data Units:** Fraction Soil moisture anomaly (mm3/mm3) difference from 1982-2016 monthly mean
- **Data Type:** Research
- **Data Latency:** Monthly

**Scientific Details:**
The Famine Early Warning Systems Network (FEWS NET) Land Data Assimilation System (FLDAS) contains a series of land surface parameters simulated from the Noah 3.6.1 model. The data are in 0.10 degree resolution and range from January 1982 to present. The temporal resolution is monthly and the spatial coverage is global (60S, 180W, 90N, 180E). The simulation was forced by a combination of the Modern-Era Retrospective analysis for Research and Applications version 2 (MERRA-2) data and Climate Hazards Group InfraRed Precipitation with Station (CHIRPS) daily rainfall data that has been temporally downscaled using the NASA Land Data Toolkit. The simulation was initialized on January 1, 1982 using soil moisture and other state fields from a FLDAS/Noah model climatology for that day of the year. Soil moisture anomalies are computed based on monthly averages from 1982-2016.

</Prose>
</Block>
<Block>
<Prose>
## Source Data Product Citation
Amy McNally, NASA/GSFC/HSL (2018), FLDAS Noah Land Surface Model L4 Global Monthly Anomaly 0.1 x 0.1 degree (MERRA-2 and CHIRPS), Greenbelt, Maryland, USA, Goddard Earth Sciences Data and Information Services Center (GES DISC), Accessed: [Data Access Date], [10.5067/GNKZZBAYDF4W](https://doi.org/10.5067/GNKZZBAYDF4W)

## Dataset Accuracy
This dataset uses CHIRPS precipitation inputs and MERRA-2 reanalysis. While regional, relative, comparisons to remotely sensed estimates and other model products are favorable, users should verify that the data accuracy meets the requirements of their specific application, and interpret results accordingly.

## Key Publications

McNally, A., Arsenault, K., Kumar, S. et al. A land data assimilation system for sub-Saharan Africa food and water security applications. Sci Data 4, 170012 (2017). https://doi.org/10.1038/sdata.2017.12

## Acknowledgment

We gratefully acknowledge the financial support from the NASA Earth Science Applications: Water Resources program award 13-WATER13-0010, and USAID FEWS NET and NASA Participating Agency Program Agreement and NASA Harvest. Computing was supported by the resources at the NASA Center for Climate Simulation (NCCS). Distribution of data from the Goddard Earth Sciences Data and Information Services Center (GES DISC) is funded by NASA's Science Mission Directorate (SMD).

## License

[Creative Commons Attribution 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode) (CC BY 4.0).

</Prose>
</Block>
Binary file added datasets/FLDAS_Dataset_Cover.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
64 changes: 64 additions & 0 deletions datasets/aerosol-difference.data.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
---
id: houston-aod-diff
name: "Houston Aerosol Optical Depth Difference Over 20 Years"
description: "The impact of Aerosol over the Houston-metro and the Difference Over 20 Years"
media:
src: ::file ./smog-city.png
alt: Smog Located In City.
author:
name: Nick van den Berg
url: https://unsplash.com/photos/2vb-_3t6YCM
taxonomy:
- name: Topics
values:
- Air Quality
layers:
- id: houston-aod-diff
stacCol: houston-aod-diff
name: AOD Difference (2010-2019) - (2000-2009)
type: raster
description: "This figure shows the difference in AOD in the form of a raster when subtracting the two decades from the original AOD Dataset"
initialDatetime: newest
zoomExtent:
- 0
- 20
sourceParams:
colormap_name: bwr
rescale:
- -0.1
- 0.1
nodata: 0
compare:
datasetId: houston-urbanization
layerId: houston-urbanization
mapLabel: |
::js ({dateFns, datetime, compareDatetime}) => {
return `${dateFns.format(datetime, 'LLL yyyy')} VS ${dateFns.format(compareDatetime, 'LLL yyyy')}`;
}
legend:
type: gradient
min: "-0.1"
max: "0.1"
stops:
- "#4575b4"
- "#91bfdb"
- "#e0f3f8"
- "#ffffff"
- "#fee090"
- "#fc8d59"
- "#d73027"



---

<Block>
<Prose>

Refer to the "houston-aod" dataset for more information on how AOD Difference is derived. This dataset comes from the two decadal COGs that displayed mean Aerosol Optical Depth for 2000-2009 and for 2010-2019. Those tiffs were subtracted to display the differences between the two decades.


</Prose>
</Block>


2 changes: 1 addition & 1 deletion datasets/bangladesh-landcover-2001-2020.data.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ layers:
layerId: bangladesh-landcover-2001-2020
mapLabel: |
::js ({ dateFns, datetime, compareDatetime }) => {
return `${dateFns.format(datetime, 'LLL yyyy')} VS ${dateFns.format(compareDatetime, 'LLL yyyy')}`;
if (dateFns && datetime && compareDatetime) return `${dateFns.format(datetime, 'LLL yyyy')} VS ${dateFns.format(compareDatetime, 'LLL yyyy')}`;
}
---

Expand Down
81 changes: 81 additions & 0 deletions datasets/cmip6-tas.data.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
---
id: combined_CMIP6_daily_GISS-E2-1-G_tas_kerchunk_DEMO
name: 'CMIP6 Daily GISS-E2-1-G Near-Surface Air Temperature (demo subset)'
featured: false
description: "Daily near-surface air temperature from the NASA Earth Exchange Global Daily Downscaled Projections (NEX-GDDP-CMIP6) Project."
media:
src: ::file ./cmip6-tas.png
alt: CMIP6 Near-Surface Air Temperature Screenshot
author:
name: NASA
url:
taxonomy:
- name: Topics
values:
- Climate
layers:
- id: combined_CMIP6_daily_GISS-E2-1-G_tas_kerchunk_DEMO
stacCol: combined_CMIP6_daily_GISS-E2-1-G_tas_kerchunk_DEMO
name: CMIP6 Daily GISS-E2-1-G Near-Surface Air Temperature (demo subset)
type: zarr
description: "Historical (1950-2014) daily-mean near-surface (usually, 2 meter) air temperature in Kelvin."
zoomExtent:
- 0
- 20
sourceParams:
reference: "true"
resampling_method: bilinear
variable: tas
colormap_name: coolwarm
rescale: 232,312
maxzoom: 12
legend:
unit:
label: K
type: gradient
min: 232
max: 312
stops:
- '#3b4cc0'
- '#7b9ff9'
- '#c0d4f5'
- '#f2cbb7'
- '#ee8468'
- '#b40426'
---

<Block>
<Prose>
# NASA Earth Exchange Global Daily Downscaled Projections (NEX-GDDP-CMIP6)

The NEX-GDDP-CMIP6 dataset provide a set of global, high resolution, bias-corrected climate change projections that can be used to evaluate climate change impacts on processes that are sensitive to finer-scale climate gradients and the effects of local topography on climate conditions.

NEX-GDDP-CMIP6 is comprised of global downscaled climate scenarios derived from the General Circulation Model (GCM) runs conducted under the Coupled Model Intercomparison Project Phase 6 (CMIP6) and across all four “Tier 1” greenhouse gas emissions scenarios known as Shared Socioeconomic Pathways (SSPs). The CMIP6 GCM runs were developed in support of the Sixth Assessment Report of the Intergovernmental Panel on Climate Change (IPCC AR6). This dataset includes downscaled projections from ScenarioMIP model runs for which daily scenarios were produced and distributed through the Earth System Grid Federation.

### Summary

* Format: [kerchunk (metadata)](https://fsspec.github.io/kerchunk/) for netCDF4
* Spatial Coverage: 180° W to 180° E, 60° S to 90° N
* Temporal: 1950-01-01 to 1951-12-31
* _As noted below, this dataset is a subset all available data. The full dataset includes data from 1950 to 2100._
* Data Resolution:
* Latitude Resolution: 0.25 degrees (25 km)
* Longitude Resolution: 0.25 degrees (25 km)
* Temporal Resolution: daily

Source: [https://www.nccs.nasa.gov/services/data-collections/land-based-products/nex-gddp-cmip6](https://www.nccs.nasa.gov/services/data-collections/land-based-products/nex-gddp-cmip6)

## AWS Public Dataset

There are 2 datasets listed on the AWS Registry of Open Data for [NEX-GDDP-CMIP6](https://registry.opendata.aws/nex-gddp-cmip6/). First, there is an archive of NetCDF files from about 35 different climate models, each supplying historical and predicted values for up to 9 environment variables, daily, from 1950 to 2100. Second, there is an archive of COGs generated from the corresponding NetCDFs to support visualization via dynamic tiling using COGs. COGs are only available for 2 models. The COG archive also includes monthly aggregatations across those models.

## Dataset Preparation

### This dataset represents a subset of NEX-GDDP-CMIP6

VEDA is hosting a single JSON file which references a subset of the NEX-GDDP-CMIP6 data in NetCDF. We used the [kerchunk](https://fsspec.github.io/kerchunk/) python library to create a JSON file - often called a reference file - which is an index of the chunks of the data stored in the original [NetCDF](https://www.unidata.ucar.edu/software/netcdf/) files. This can be considered a "virtual" Zarr dataset. The virtual Zarr dataset (aka the kerchunk reference file) is used by a dynamic tiling library ([titiler-xarray](https://github.com/developmentseed/titiler-xarray)) to create image tiles from the underlying data. The indexes were generated for the near-surface air temperature variable (TAS) for years 1950-2014, the historical extent of the NEX-GDDP-CMIP6 project.

We are using these methods to demonstrate a method for visualizing a "virtual" Zarr dataset which allows for dynamic visualization without having to create and maintain any additional copies of data.

</Prose>
</Block>
Binary file added datasets/cmip6-tas.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion datasets/co2.data.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ layers:
layerId: co2-mean
mapLabel: |
::js ({ dateFns, datetime, compareDatetime }) => {
return `${dateFns.format(datetime, 'LLL yyyy')} VS ${dateFns.format(compareDatetime, 'LLL yyyy')}`;
if (dateFns && datetime && compareDatetime) return `${dateFns.format(datetime, 'LLL yyyy')} VS ${dateFns.format(compareDatetime, 'LLL yyyy')}`;
}
legend:
type: gradient
Expand Down
2 changes: 1 addition & 1 deletion datasets/disalexi-etsuppression.data.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ layers:
layerId: mtbs-burn-severity
mapLabel: |
::js ({ dateFns, datetime, compareDatetime }) => {
return `ET Anomalies: ${dateFns.format(datetime, 'yyyy')} VS MTBS: ${dateFns.format(compareDatetime, 'yyyy')}`;
if (dateFns && datetime && compareDatetime) return `ET Anomalies: ${dateFns.format(datetime, 'yyyy')} VS MTBS: ${dateFns.format(compareDatetime, 'yyyy')}`;
}
legend:
type: gradient
Expand Down
2 changes: 1 addition & 1 deletion datasets/frp-max-thomasfire.data.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ layers:
layerId: barc-thomasfire
mapLabel: |
::js ({ dateFns, datetime, compareDatetime }) => {
return `FRP: ${dateFns.format(datetime, 'yyyy')} VS BARC: ${dateFns.format(compareDatetime, 'yyyy')}`;
if (dateFns && datetime && compareDatetime) return `FRP: ${dateFns.format(datetime, 'yyyy')} VS BARC: ${dateFns.format(compareDatetime, 'yyyy')}`;
}
legend:
type: gradient
Expand Down
Loading

0 comments on commit d858eae

Please sign in to comment.